gpt4 book ai didi

android - 从广播接收器恢复 Activity

转载 作者:太空狗 更新时间:2023-10-29 16:42:50 25 4
gpt4 key购买 nike

我正在尝试从广播接收器的 onReceive() 方法中恢复 Activity ,如下所示:

Intent i = new Intent(context, TimerSet.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

但是 Activity (TimerSet.class) 被重新创建而不是恢复。我发现针对此问题的唯一推荐解决方案是使用 FLAG_ACTIVITY_REORDER_TO_FRONT 但我已经在使用它了。

此外,使用 Intent.FLAG_ACTIVITY_NEW_TASK 不适合我的用例,但当我不提供时出现以下异常:

android:util.AndroidRuntimeException: Calling startActivity() from outside of an 
Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you
want?

最佳答案

我不确定这是否正是您的问题,但我遇到了这样一种情况,我收到通知并且我想在不启动新实例的情况下启动我的应用程序(如果它已经在运行)我终于发现这些会起作用。如果 Activity 已经在运行,则 FLAG_ACTIVITY_NEW_TASK 将不会启动新的瞬间。但是,它会将其添加到现有堆栈中。因此,我们可以执行 FLAG_ACTIVITY_CLEAR_TOP,这样返回时会将用户带到主屏幕,而不是之前的状态。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

关于android - 从广播接收器恢复 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14930464/

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