0

在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到的是该应用程序没有通过 onDestroy。

我想这是因为工作室使用即时运行?只要它仅限于开发环境,这不是问题。

但是当用户从商店更新应用程序时会发生什么?我确定该应用程序在重新打开之前会转到 onDestroy 吗?

我不确定如何准确地测试它,所以我想我可以从论坛上问这个问题。

4

1 回答 1

1

debug使用您声明的目标(如或)创建一个 APK release。在您的设备中安装 APK。现在启动您的应用程序。当应用程序处于前台时。使用以下命令再次安装 APK。

adb install -r PATH_TO_TOUR_APK

这类似于从 Play 商店升级应用程序。只需确保两个 APK 具有相同的签名证书并且增加了versionCode.

更新答案:如果您想在应用程序被杀死时通知用户请尝试以下操作:

public class EmptyService extends Service {

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

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

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

@Override
public void onTaskRemoved(Intent rootIntent) {
    Log.e("EmptyService", "END");
    //Code here
    stopSelf();
}

}

在 AndroidManifest 中

<service android:name="com.example.EmptyService" android:stopWithTask="false" />

现在从您的应用程序开始启动此服务。

让我知道它在升级的情况下是否有效。

于 2018-07-28T17:16:45.620 回答