我有一个用作工业过程遥控器的应用程序,具有 3 个活动 A、B 和 GraphicsActivity。A 是主要活动,B 是另一个具有用户可以访问的附加功能的屏幕。
还有一个单独的独立类 PCComms,它在自己的线程中运行并处理与控制工业过程的 PC 的通信。每隔一段时间,PC 就会向 Android 发送要显示的图像,PCComms 将触发 GraphicsActivity 以将其显示给用户。用户点击一个按钮来关闭它。
这就是问题所在: 当用户关闭 GraphicsActivity 时,它总是返回到 A,即使用户当时在 B 中。
PCComms 不是一个活动,只是一个通用类,因此它需要一个活动上下文,因此我有一个上下文变量,该变量在显示图形时由具有屏幕的任何活动更新:
Intent intent = new Intent(curContext, GraphicsActivity.class);
intent.putExtra("Caption", sGCaption);
curContext.startActivity(intent);
...我已经在调试器中确认 curContext 是 B 的上下文。当 GraphicsActivity 启动时,B 的onPause()被调用,但在 GraphicsActivty finish() es 时没有调用 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?
提前致谢!