gpt4 book ai didi

android - 用广播接收器重新启动主要 Activity ?

转载 作者:搜寻专家 更新时间:2023-11-01 09:05:13 25 4
gpt4 key购买 nike

首先我给你一个简短的例子来说明我的问题。请记住,我的应用程序所需的行为仅供我自己使用。

假设我有一个包含一个 Activity 和一些 fragment 的应用程序。此应用程序通过静态广播接收器启动,其 Intent 例如ACTION_POWER_CONNECTED。至此,我的实现一切顺利。

但是有一个错误行为,我不知道如何正确解决。

如果应用程序正在运行并且我将我的 USB 关闭并重新打开,我的 Activity 的第二个新实例将被创建,第一个实例仍在运行。只是说清楚:如果我按下后退按钮,第二个按钮就会消失,第一个实例会显示他的 UI。

我正在寻找一种方法来重新启动我的应用程序,如果它已经在运行,如果它没有运行则启动它。无需为任何类型的重用而保存数据。

我尝试了一些带有标志 FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_BROUGHT_TO_FRONT 和 FLAG_ACTIVITY_CLEAR_TOP 的组合。但我认为这些对我来说是错误的。接下来的尝试是将 list 中的 Activity 设置为 singleInstance 以确保不会有第二个实例。根本没有取得太大的成功。

谁能给我一个例子来解决我的问题,比如我必须使用哪些标志?

最佳答案

在您的 list 中的 Activity 标签 文件中设置 android:launchMode="singleTask" 并重试...

如果您的 Activity 已经在运行,则不要使用上面的标签创建新的 Activity,它会显示旧的正在运行的 Activity..

您需要在旧的运行 Activity 中更新 UI 或数据,然后使用在 Intent 广播时调用的 onResume 方法...

谢谢

关于android - 用广播接收器重新启动主要 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com