2017-02-22 5 views
-1

アンドロイドプロジェクトにはいくつかのアクティビティがあります。しかし、アプリがアプリリストから削除されると、どのアクティビティが必ず呼び出されます。アンドロイドの最近のリストからアプリを削除すると、どのアクティビティが呼び出されますか?

以下の質問を確認しました。しかし、すべてのこれらの質問は、私はまた私がトレースする必要がある非常に多くの同様のシナリオに捕まってしまった

How to handle code when app is killed by swiping in android?

How to detect app removed from the recent list

What method is being called when I close an app

+0

破壊なっているアクティビティの名前を知っています。しかし、スタックまたは実行中のすべてのアクティビティのoffcourse onDestroyメソッドが呼び出されます。 –

答えて

0

活動やサービスに固有である利用者の活動から最近のリストからアプリを削除したので、ポイントに移動

ステップ1: クラスを作成するApplicationLifeCycleHandlerを作成して実装するMENT Application.ActivityLifecycleCallbacks、ComponentCallbacks2

コード

public class ApplicationLifeCycleHandler implements Application.ActivityLifecycleCallbacks , ComponentCallbacks2 { 

private static final String TAG = "AppLifeCycleShareTime"; 

private static boolean isInBackground = false; 

@Override 
public void onActivityCreated(Activity activity, Bundle bundle) { 
    Log.d(TAG , "onActivityCreated"); 
} 

@Override 
public void onActivityStarted(Activity activity) { 
    Log.d(TAG , "onActivityStarted"); 

} 

@Override 
public void onActivityResumed(Activity activity) { 


    Log.d( TAG , "onActivityResumed : " + ShareTime.currentActivity.getClass().getName()); 
    if(isInBackground){ 
     Log.d(TAG, "app went to foreground"); 
     isInBackground = false; 
    } 
} 

@Override 
public void onActivityPaused(Activity activity) { 
    Log.d( TAG , "onActivityPaused : " + activity.getClass().getName()); 
} 

@Override 
public void onActivityStopped(Activity activity) { 
    Log.d(TAG , "onActivityStopped : " + activity.getClass().getName()); 



} 

@Override 
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) { 
    Log.d( TAG , "onActivitySaveInstanceState"); 
} 

@Override 
public void onActivityDestroyed(Activity activity) { 
    Log.d(TAG , "onActivityDestroyed Parent : " + activity.getClass().getName()); 

} 

@Override 
public void onConfigurationChanged(Configuration configuration) { 
    Log.d(TAG , "onConfigurationChanged"); 
} 

@Override 
public void onLowMemory() { 
    Log.d(TAG , "onLowMemory"); 
} 


@Override 
public void onTrimMemory(int i) { 
    Log.d(TAG , "onTrimMemory"); 
    if(i == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN){ 
     Log.d(TAG, "app went to background"); 
     isInBackground = true 
    } 
} 

}

今 クラスMyApplicationを作成し、アプリケーションに拡張

コード

public class MyApplication extends Application { 

public static FileMetadata file; 

@Override 
public void onCreate() { 
    super.onCreate(); 

    ApplicationLifeCycleHandler handler = new ApplicationLifeCycleHandler(); 
    registerActivityLifecycleCallbacks(handler); 
    registerComponentCallbacks(handler); 

} 

} 

ステップ3: オープンマニフェストファイルとアンドロイドを追加します。name =「MyApplicationを」アプリケーションタグへ

ステップ4:onActivityDestroyedの チェックログとあなたはそのような活動が呼び出されていない

関連する問題