onDestroy 从商店更新或从工作室重新加载
onDestroy with an update from the store or a reload from the studio
在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到该应用程序没有通过 onDestroy。
我猜这是因为工作室使用即时 运行?只要它限于开发环境,这不是问题。
但是当用户从商店更新应用程序时会发生什么?我确定应用程序在重新打开之前进入了 onDestroy 状态吗?
我不确定如何测试它,所以我想我可以在论坛上提问。
使用您声明的目标创建 APK,例如 debug
或 release
。在您的设备中安装 APK。现在启动您的应用程序。
当应用程序在前台时。使用以下命令再次安装 APK。
adb install -r PATH_TO_TOUR_APK
这类似于从 Play 商店升级应用程序。只需确保两个 APK 具有相同的签名证书和增加的 versionCode
.
Upadte 回答:如果您想在 App 被杀死时通知用户,请尝试以下操作:
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" />
现在从您的应用程序开始启动此服务。
让我知道升级后是否有效。
在我的应用程序中,我需要检测用户何时结束应用程序。当我从 Android Studio 重新加载时,我看到该应用程序没有通过 onDestroy。
我猜这是因为工作室使用即时 运行?只要它限于开发环境,这不是问题。
但是当用户从商店更新应用程序时会发生什么?我确定应用程序在重新打开之前进入了 onDestroy 状态吗?
我不确定如何测试它,所以我想我可以在论坛上提问。
使用您声明的目标创建 APK,例如 debug
或 release
。在您的设备中安装 APK。现在启动您的应用程序。
当应用程序在前台时。使用以下命令再次安装 APK。
adb install -r PATH_TO_TOUR_APK
这类似于从 Play 商店升级应用程序。只需确保两个 APK 具有相同的签名证书和增加的 versionCode
.
Upadte 回答:如果您想在 App 被杀死时通知用户,请尝试以下操作:
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" />
现在从您的应用程序开始启动此服务。
让我知道升级后是否有效。