gpt4 book ai didi

java - Activity 不会在主页按钮后从广播接收器启动,而是在后退按钮后启动

转载 作者:行者123 更新时间:2023-12-02 00:46:03 25 4
gpt4 key购买 nike

我尝试从广播接收器启动一个 Activity ,该接收器使用此代码从前台服务启动

   val intent = Intent("my.intent")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(intent)

Activity 开始了。但是,当我看到 Activity 并按下主页按钮时,下次当接收器尝试启动该 Activity 时,该 Activity 将不会启动,如果我在显示 Activity 时按后退按钮,则下次 Activity 将从接收器开始,而不会启动任何问题。

我尝试为启动 Intent 设置差异标志。设置singleTask和singleInstance另外,我尝试重写 onBackPressed() 以完成 Activity 并从 onPause() 调用 finish()。但行为不会改变。我从主要 Activity 启动前台服务,在这种情况下,我有相同的行为。如果我启动前台服务(只需单击按钮即可)并按 Home 最小化应用程序,这样广播中的 Activity 也不会启动我展示了 Toast Frow 接收器,因此我确信 Activity 必须开始。

我的 list

  <activity
android:name=".NeededActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="my.intent" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

有什么区别以及如何修复它,每次在接收器中调用 startActivity 时都需要启动 Activity。我已在 Android 10 上测试了我的代码。

最佳答案

您可以使用 Intent 中的 clearTask 标志

有关 Intent 标志的更多信息,您可以引用官方文档 Activity Intent

另外,既然您使用的是 Kotlin,为什么不尝试 Anko

像这样使用

startActivity(intentFor<NeededActivity>().clearTask().newTask())

关于java - Activity 不会在主页按钮后从广播接收器启动,而是在后退按钮后启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57897066/

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