我有一个应用程序用作工业过程的远程控制,具有3个活动A,B和GraphicsActivity。 A是主要活动,B是另一个具有用户可以访问的其他功能的屏幕。

还有一个单独的独立类PCComms,它在自己的线程中运行并处理与控制工业过程的PC的通信。 PC经常向Android发送要显示的图像,而PCComms将触发GraphicsActivity将其显示给用户。用户点击按钮将其关闭。

这就是问题所在:当用户关闭GraphicsActivity时,即使用户当时在B中,它也始终返回A。

PCComms不是活动,而是通用类,因此它需要一个活动上下文,因此我有一个上下文变量,该变量由显示图形时屏幕上的哪个Activity进行更新:

Intent intent = new Intent(curContext, GraphicsActivity.class);
intent.putExtra("Caption", sGCaption);
curContext.startActivity(intent);


...我已经在调试器中确认curContext是B的上下文。
当启动GraphicsActivity时,将调用B的onPause(),但在GraphicsActivty finish()时将不调用B的生命周期事件。

相关清单条目。 。 。

<activity android:name="A"
   android:launchMode="singleTask"
   android:screenOrientation="portrait">
</activity>
<activity android:name="B"
   android:screenOrientation="portrait"
   android:launchMode="singleInstance">
</activity>
<activity android:name="GraphicsActivity"
   android:screenOrientation="portrait"
   android:launchMode="standard">
</activity>


因此,如果在打开GraphicsActivity时位于B中,那么如何在关闭GraphicsActivity时使其返回至B中呢?

提前致谢!

最佳答案

由于B是singleInstance,因此GraphicsActivity放在A任务堆栈中,因此当您完成()时,您将返回A。您应该使B成为标准配置,并且每次调用B时都可以使用FLAG_ACTIVITY_CLEAR_TOP。您还可以使GraphicsActivity singleInstance。

关于android - 新 Activity 关闭时如何返回我的原始 Activity ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16551513/

10-09 07:09