从其他应用程序启动非主要 Activity 清除其顶部
Starting a non-Main Activity from other app clearing its top
我有两个应用程序,应用程序 'A' 和应用程序 'B',第一个应用程序由一个 activity (1) 组成,第二个应用程序有两个活动 (1, 2).
问题是我需要在不出现 B1 的情况下从 A1 调用 B2。但是当我调用它时,总是首先显示 B1,然后自动传递到 B2,当我推回 B2 时,我需要返回到 A1,但它 returns 到 B1。
这是我调用意图时的代码:
val intent = Intent()
intent.component = ComponentName("com.app.appB", "com.app.appB.route.to.activity2")
intent.putExtra("stuff", someStuff)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
这是清单上来自 B 的 activity2:
<activity
android:name=".route.to.activity2"
android:screenOrientation="portrait"
android:exported="true">
</activity>
我试过更改标志,但不知为何我收到了这个错误:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
我也试过将 noHistory = true 添加到清单中,但没有任何改变。
希望有人能尽快提供帮助,谢谢!
编辑 1
也尝试使用像 post 中所说的 intent-filter:Launch Activity from another Application Android 但仍然无法正常工作,行为保持不变。
将此添加到清单中的 activity:
<intent-filter>
<action android:name="com.app.appB.route.to.activity2.LAUNCH_IT"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
并这样调用 activity:
val intent = Intent()
intent.action = "com.app.appB.route.to.activity2.LAUNCH_IT"
intent.putExtra("stuff", someStuff)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
applicationContext.startActivity(intent)
经过大量研究和尝试,我发现将 next 参数添加到清单中的 activity 非常有效。我希望这可以帮助其他人:
android:launchMode="singleInstance"
我有两个应用程序,应用程序 'A' 和应用程序 'B',第一个应用程序由一个 activity (1) 组成,第二个应用程序有两个活动 (1, 2).
问题是我需要在不出现 B1 的情况下从 A1 调用 B2。但是当我调用它时,总是首先显示 B1,然后自动传递到 B2,当我推回 B2 时,我需要返回到 A1,但它 returns 到 B1。
这是我调用意图时的代码:
val intent = Intent()
intent.component = ComponentName("com.app.appB", "com.app.appB.route.to.activity2")
intent.putExtra("stuff", someStuff)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
这是清单上来自 B 的 activity2:
<activity
android:name=".route.to.activity2"
android:screenOrientation="portrait"
android:exported="true">
</activity>
我试过更改标志,但不知为何我收到了这个错误:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
我也试过将 noHistory = true 添加到清单中,但没有任何改变。
希望有人能尽快提供帮助,谢谢!
编辑 1
也尝试使用像 post 中所说的 intent-filter:Launch Activity from another Application Android 但仍然无法正常工作,行为保持不变。
将此添加到清单中的 activity:
<intent-filter>
<action android:name="com.app.appB.route.to.activity2.LAUNCH_IT"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
并这样调用 activity:
val intent = Intent()
intent.action = "com.app.appB.route.to.activity2.LAUNCH_IT"
intent.putExtra("stuff", someStuff)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
applicationContext.startActivity(intent)
经过大量研究和尝试,我发现将 next 参数添加到清单中的 activity 非常有效。我希望这可以帮助其他人:
android:launchMode="singleInstance"