当应用程序从 android 的最近列表中删除时,会调用哪个活动? [英] Which activity is called when app removed from recent list in android?

查看:35
本文介绍了当应用程序从 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

如何处理代码应用在android中被刷屏?

如何检测从最近列表中删除的应用

当我关闭一个应用

推荐答案

我也陷入了非常相似的场景中,我需要跟踪用户从最近列表中删除了应用程序的哪个活动,所以移到重点

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.ActivityLifecycleCallbacksComponentCallbacks2:

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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆