Android - 如何区分活动重新启动和“正常”活动开始

发布于 2024-11-05 11:32:40 字数 145 浏览 2 评论 0原文

我试图区分活动是被销毁然后重新启动还是通过标准 startActivity 调用启动。区分这一点的最佳方法是什么?我需要跟踪一个计数器,当应用程序被销毁并重新启动时,计数器不应该增加。我尝试使用 putExtra(String, String),但返回的值无论如何都是相同的。

I'm trying to distinguish if an activity is destroyed then restarted vs. when it's started via standard startActivity call. What's the best way to distinguish this? I need to track a counter, and the counter should not be incremented when the app has been destroyed and restarted. I tried using putExtra(String, String), but the value returned is the same regardless.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雾里花 2024-11-12 11:32:40

您可以尝试使用标志 isSavedInstanceState。在 onResume 中将此标志设置为 false。在 onSaveInstanceState 中将此标志设置为 true。在 onStop 中检查此标志。

@Override
protected void onStop(){
   super.onStop();
   if (!isSavedInstanceState){ // this is a HARD KILL, write to prefs
       SharedPreferences prefs = getPreferences(MODE_PRIVATE);
       SharedPreferences.Editor editor = prefs.edit();
       editor.putYourCounterIncrementHere
       editor.commit();
       Log.d(TAG,"savedPrefs");
   }
   else {
       Log.d(TAG,"DidNotSavePrefs");
   }
   Log.d(TAG,"onStop");
}

这将增加你的硬杀计数器。如果需要,您可以在 onCreate 中检查捆绑包是否为空捆绑包,但我尚未完全测试该逻辑。

You could try using a flag isSavedInstanceState. Set this flag to false in onResume. Set this flag to true in onSaveInstanceState. Check this flag in onStop.

@Override
protected void onStop(){
   super.onStop();
   if (!isSavedInstanceState){ // this is a HARD KILL, write to prefs
       SharedPreferences prefs = getPreferences(MODE_PRIVATE);
       SharedPreferences.Editor editor = prefs.edit();
       editor.putYourCounterIncrementHere
       editor.commit();
       Log.d(TAG,"savedPrefs");
   }
   else {
       Log.d(TAG,"DidNotSavePrefs");
   }
   Log.d(TAG,"onStop");
}

This will increment your counter on a hard kill. You could check the bundle in onCreate for a null bundle if you want, but I have not fully tested that logic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文