gpt4 book ai didi

android - 如何知道我的应用程序何时被杀死?

转载 作者:IT王子 更新时间:2023-10-28 23:39:15 30 4
gpt4 key购买 nike

我需要知道用户何时终止我的应用程序(强制停止)。我一直在阅读 android 生命周期,它具有 onStop()onDestroy() 函数,这些与用户在我的应用程序上结束的每个 Activity 有关,但不当用户强制停止或终止我的应用程序时。

有什么方法可以知道用户何时杀死了应用程序?

最佳答案

我找到了一种方法来做到这一点.....

  1. 做一个这样的服务

    public class OnClearFromRecentService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
    return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d("ClearFromRecentService", "Service Started");
    return START_NOT_STICKY;
    }

    @Override
    public void onDestroy() {
    super.onDestroy();
    Log.d("ClearFromRecentService", "Service Destroyed");
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
    Log.e("ClearFromRecentService", "END");
    //Code here
    stopSelf();
    }
    }
  2. 像这样在Manifest.xml中注册这个服务

    <service android:name="com.example.OnClearFromRecentService" android:stopWithTask="false" />
  3. 然后在您的启动 Activity 上启动此服务

    startService(new Intent(getBaseContext(), OnClearFromRecentService.class));

现在每当你从 android 最近清除你的应用程序时,这个方法 onTaskRemoved() 就会执行。

注意:在 Android O+ 中,此解决方案仅在应用全时在前台运行时才有效。应用程序在后台运行超过 1 分钟后,OnClearFromRecentService(以及所有其他正在运行的服务)将被系统自动强制终止,因此不会执行 onTaskRemoved()。

关于android - 如何知道我的应用程序何时被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040339/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com