在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到的是该应用程序没有通过 onDestroy。
我想这是因为工作室使用即时运行?只要它仅限于开发环境,这不是问题。
但是当用户从商店更新应用程序时会发生什么?我确定该应用程序在重新打开之前会转到 onDestroy 吗?
我不确定如何准确地测试它,所以我想我可以从论坛上问这个问题。
在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到的是该应用程序没有通过 onDestroy。
我想这是因为工作室使用即时运行?只要它仅限于开发环境,这不是问题。
但是当用户从商店更新应用程序时会发生什么?我确定该应用程序在重新打开之前会转到 onDestroy 吗?
我不确定如何准确地测试它,所以我想我可以从论坛上问这个问题。
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" />
现在从您的应用程序开始启动此服务。
让我知道它在升级的情况下是否有效。