当应用程序从 android 的最近列表中删除时,会调用哪个活动? [英] Which activity is called when app removed from recent list in android?
问题描述
android 项目中有几个活动.但是当从应用程序列表中删除应用程序时,肯定会调用哪个活动.
There are several activities in the android project. But which activity will surely get called when the app is removed from the app list.
我检查了以下问题.但所有这些问题都是针对某项活动或服务的
I have checked following questions. But all these questions are specific to an activity or service
推荐答案
我也陷入了非常相似的场景中,我需要跟踪用户从最近列表中删除了应用程序的哪个活动,所以移到重点
I also got stuck in very much similar scenario, where I need to trace from which activity the user removed app from recent list, So moving to the point
第 1 步:
创建ApplicationLifeCycleHandler
类并实现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
并将其扩展为 Application:
Now: Create Class MyApplication
and extend it to Application:
public class MyApplication extends Application {
public static FileMetadata file;
@Override
public void onCreate() {
super.onCreate();
ApplicationLifeCycleHandler handler = new ApplicationLifeCycleHandler();
registerActivityLifecycleCallbacks(handler);
registerComponentCallbacks(handler);
}
}
第 3 步:打开清单文件并将 android:name="MyApplication"
添加到应用程序标签.
Step 3 :
Open Manifest File and Add android:name="MyApplication"
to application Tag.
第 4 步:查看onActivityDestroyed
的日志,你就会知道被销毁的活动的名称.
Step 4 :
Check Logs of onActivityDestroyed
and you will know the name of activity which is getting destroyed.
这篇关于当应用程序从 android 的最近列表中删除时,会调用哪个活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!