从主键屏幕开始活动

发布于 2024-10-19 12:39:19 字数 218 浏览 0 评论 0原文

我有一个启动活动的后台服务,

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

销毁此活动并通过“长按主页键菜单”重新启动它后,此活动再次启动。但我想开始主要活动。我怎么能意识到这一点呢?

I have a background Service which starts an activity,

Intent i = new Intent(this, MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

After destroying this Activity and restart it over the "long press home key menu", this Activity starts again. But I want to start the main activity instead. How could I realise this?

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

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

发布评论

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

评论(2

弄潮 2024-10-26 12:39:19

您能更详细地解释一下吗?如果我理解您的问题,请尝试设置 FLAG_ACTIVITY_NO_HISTORY。

或者,手动解决方案是检查 MyActivity 中意图的 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY,如果看到此标志设置,则启动到主活动。下面的代码应该做到这一点:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}

Could you explain in more detail? If I understand your problem try setting the FLAG_ACTIVITY_NO_HISTORY.

Alternatively a manual solution would be to check the FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY on the intent in MyActivity and launch to the main activity if you see this flag set. The following code should do that:

if ((getIntent().getFlags() & FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) {
   activity.startActivity(new Intent(context , MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));    
}
亽野灬性zι浪 2024-10-26 12:39:19

问题就像您从服务启动活动 - >通知来了 - >用户再次启动应用程序 - >没有通知 - >主要活动出现在前台
现在,如果应用程序从“长按主键菜单”启动,则主要活动将启动并显示通知。

因此,一个明确的解决方案是将主要活动设置为“从最近的内容中排除 = true”和“无历史记录 = true;”用户将无法在“长按主页键菜单”中看到您的活动

The problem is like you started the activity from service-->Notification came-->user launch the app agian-->No notification-->main activity came on foreground
Now if the application is started from the "long press home key menu" main activity is starting and showing the Notification.

so one Clear resolution is make Main activity as "Exclude From recent = true" and "No History = true;" user will not be able to see your activity in the "long press home key menu"

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