Android 避免 OnResume

发布于 2024-12-20 19:57:52 字数 229 浏览 0 评论 0原文

我有 3 个基于 Activity 的应用程序,它的工作流程类似于 MainActivity ListViewDetailView。当onResume事件触发时,需要调用MainActivity。不去其他两项活动。

onResume 事件触发时有什么方法可以调用 MainActivity 吗?

谢谢

I have 3 Acivity based application, It's work flow like this MainActivity ListView and DetailView. when onResume event trigger , need to call MainActivity. without going to other two activity.

Is there any way to call MainActivity when onResume event trigger?

Thank You

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

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

发布评论

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

评论(3

剩余の解释 2024-12-27 19:57:52

您可以在 AndroidManifest.xml 文件中为 MainActivity 设置 android:clearTaskOnLaunch="true" 属性。请参阅此处了解原因和更多详细信息。我认为这是满足您需求的最便捷的方式。

编辑:
我刚刚测试过,发现这只在您退出应用程序并从应用程序抽屉启动应用程序时才有效(不要长按主页并选择应用程序)。

如果您希望始终将根 Activity 置于最前面,无论您何时重新启动应用程序或从最近的屏幕启动。您可以为根 Activity(此处为 MainActivity)声明 "android:launchMode="singleTask"

You can set the android:clearTaskOnLaunch="true" attribute for you MainActivity in the AndroidManifest.xml file. See here to find why and more details. I think this is the most convenient way to meet your demand.

Edit:
I just tested and found this only works when you exit the app and launch the app from the app drawer(NOT long press on HOME and select the app).

If you want to always bring the root activity to the front, no matter when you re-launch the app or from the recent screen. You can declare "android:launchMode="singleTask" for the root activity, here, the MainActivity.

沧桑㈠ 2024-12-27 19:57:52

我能想到的最好的解决方案是在所有其他活动的 onResume 中再次启动该活动:

@Override
public void onResume() {
    Intent myIntent = new Intent(this, MainActivity.class);
    startActivity(myIntent);
}

但是,用户仍然可以点击后退按钮并返回到上一个活动。

The best solution I can think of is to start the activity again in the onResume of all your other activities:

@Override
public void onResume() {
    Intent myIntent = new Intent(this, MainActivity.class);
    startActivity(myIntent);
}

The user will still be able to hit the back button and go back to the previous activity, however.

李不 2024-12-27 19:57:52

如果您想在用户关闭应用程序时退出列表/详细信息视图,请让它们在 onPause 中自行 finish() ,当您的 Activity< /代码> 已关闭。

这里唯一需要注意的是,调用 finish() 会将其移回 ActivityStack 中的一个 Activity,因此,如果您的 MainActivity 不是启动列表/详细信息视图的那个 Activity,则它不会返回到 MainActivity 。在这种情况下,您可以在 AndroidManifest.xml 中指定

<activity android:name="sample.activity.MyActivity" android:noHistory="true" />

以防止将列表/详细信息活动放入历史记录中。

If you want to quit your List/Details views when the user closes your app, have them finish() themselves in their onPause which is called when your Activity is closed.

The only caveat here is that calling finish() will move it one Activity back in the ActivityStack so if your MainActivity isn't the one launching the List/Details views, it will not go back to the MainActivity. In this case, you could specify in the AndroidManifest.xml

<activity android:name="sample.activity.MyActivity" android:noHistory="true" />

to prevent the List/Details activities from ever being put into the history.

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