我有两项活动 activityA 和 activityB 。
activityA 正在启动后台流程并且意味着它也将启动 activityB
由 activityA 启动的后台流程将在一段时间后完成。如果 activityA 在前景中 activiyB 且 activotyA 为后台,则可以通知 activityB 。< / p>
答案 0 :(得分:3)
是的,这绝对是可能的,LocalbroadcastMaanager是一个很好的选择,你就是这样做的。
在长时间运行的过程中,请在流程结束时写下
LocalBroadcastManager.getInstance(context).sendBroadcast(
new Intent("backgroundProcessCallBack"));
在你的活动中你应该有这个(在oncreate里面):
LocalBroadcastManager.getInstance(context)
.registerReceiver(mTaskListener, new IntentFilter("backgroundProcessCallBack"));
其中mTaskListener是类级变量(BroadcastReceiver):
private BroadcastReceiver mTaskListener = new BroadcastReceiver() {
@Override
public void onReceive(Context cxt, Intent intent) {
// Do you stuff here. You got the callBack in your activity
}
};
然后在活动的onDestroy()方法中取消注册此接收器。
答案 1 :(得分:1)
您不能同时运行两个活动。
如果您的后台流程在Service
中运行,则可以在Activity
A和Activity
B中进行广播。
当Service
中的工作完成后,它会发送广播 - 无论Activity
(A或B)位于前台,它都会收到Broadcast
。