将BroadcastReceiver添加到MainActivity不起作用

时间:2015-05-20 20:59:37

标签: android android-activity broadcastreceiver

在我的项目中,我有2项活动。从主要活动开始,我将使用原生VideoView启动第二个活动,在onCreate方法中,我将调用完成,以便我将在后台运行。但是我希望将更新发送回MainActivity,例如暂停,开始,停止等等。我发现BroadcastReceiver是解决此问题的最佳方法。这是我正在做的,但是MainActivity没有接收第二个Activity发送的广播,这是我的代码。

在MainActivity.java中,

BroadcastReceiver broadcastReceiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        System.out.println("In onReceive");
    }
};
private IntentFilter filter = new IntentFilter("com.example.broadcast");

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    registerReceiver(broadcastReceiver, filter);
}

在第二个活动中,

Intent intent = new Intent("com.example.broadcast");
intent.putExtra("Status", status);
sendBroadcast(intent);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您发送该广播的那一刻,第一项活动已暂停,因此无法接收该广告。只有在第二个活动使用finish()终止后才会恢复。

如果您想在后台计算某些内容,可以使用Service

我不知道你为什么要在后台播放视频,但是你可以将View放在第一个活动中,并将视图可见性设置为不可见。

(实际上我刚才想到了一个原因,如果你认为我在想什么就是个好主意)