android中的本地广播?

时间:2014-03-27 11:36:38

标签: java android android-broadcast

我有两项活动 activityA activityB

activityA 正在启动后台流程并且意味着它也将启动 activityB

activityA 启动的

后台流程将在一段时间后完成。如果 activityA 在前景中 activiyB activotyA 为后台,则可以通知 activityB 。< / p>

2 个答案:

答案 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

示例代码:Programmatically register a broadcast receiver