저는 건물에있는 Android 응용 프로그램에서 이상한 문제가 발생했습니다. 응용 프로그램은 기본적으로 장치에 기본 홈 화면으로 배치되는 홈 화면 대체 응용 프로그램입니다.Android 응용 프로그램 onCreate가 재부팅 중에 홈 화면 시작 프로그램으로 호출되지 않습니다.
<application android:persistent="true" android:icon="@drawable/icon"
android:label="@string/app_name" android:name="com.webgyani.android.MyApplication"
android:debuggable="true">
<activity android:name=".HomeTabActivity" android:launchMode="singleInstance"
android:stateNotNeeded="true" android:theme="@style/LightTabsTheme"
android:screenOrientation="landscape" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
: 매니페스트 파일의
public class MyApplication extends Application implements ExternalStorageListener {
private ExternalStorageObserver externalStorageObserver;
public void onCreate() {
Log.i("MyApplication", "Starting application");
super.onCreate();
externalStorageObserver = new ExternalStorageObserver(this);
if(externalStorageObserver.isExternalStorageAvailable()) {
// this builds a list of files present in the SD card
// which is being used through the application to do
// some work
buildData();
File externalFileDir = getApplicationContext().getExternalFilesDir(null);
if(externalFileDir != null && externalFileDir.isDirectory()) {
// do something...
}
}
//Register listener to observe external storage state
registerExternalStorageObserver();
Log.i("SyncService", "Starting sync service...");
ComponentName cmp = startService(new Intent(getApplicationContext(), SyncService.class));
Log.i("SyncService", cmp.toString());
}
private void registerExternalStorageObserver() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addAction(Intent.ACTION_MEDIA_REMOVED);
registerReceiver(externalStorageObserver, filter);
}
private void buildData() {
// builds a list
}
}
내용 : 나는 안드로이드 응용 프로그램 클래스를 확장 한과 onCreate()
방법에 기본적으로 내가 어떤 관찰자를 등록하고 서비스를 시작하고 몇 가지 초기화 작업을 수행하려면, 여기에 코드입니다 Eclipse를 사용하거나 수동으로 apk를 장치에 설치하면이 기능이 잘 작동합니다. 일단 앱이 잘 작동하면 위의 onCreate()
메서드가 호출되고 서비스도 정상적으로 시작되지만 이번에는 장치를 재부팅하면 onCreate()
메서드가 호출되지 않습니다 (로그 문과 서비스가 표시되지 않음). 시작되지 않음). 일부 디버깅 후 기본 런처/홈 화면 앱으로 내 앱을 설정 한 다음 기기를 재부팅하면 앱이 기본 런처로 설정되면 안드로이드가 재부팅 후 홈 화면으로 앱을 자동으로 실행해야하기 때문에 이것이 발생하는 것으로 나타났습니다. 제 경우에는 앱이 시작되었지만 코드는 실행되지 않습니다.
디버거를 사용하려고했으나 장치를 재부팅 할 때 디버거가 연결이 끊어지고 USB 디버깅이 활성화 될 때까지 이미 앱이 시작 되었기 때문에 작동하지 않았습니다.
Logcat을 두 번 확인했지만 오류가 표시되지 않았습니다. 나는 그 부분을 초기화하는 BOOT_COMPLETED 의도를 가지고 있다고 생각했지만 솔루션이 없다면이 시점에서 할 수있는 코드 리팩토링이 필요합니다.
그래서 이것이 표준 동작인지 또는이 문제를 일으키는 알려진 버그인지 궁금합니다. 응용 프로그램의 onCreate
메서드는 응용 프로그램이 시작될 때마다 항상 호출됩니다. 나는 아침부터 할 수있는 일을 다 해봤지만 아무 것도 효과가 없었고 문제를 정확하게 지적하지 못했습니다.
감사합니다.