在我的项目中,我有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);
我做错了什么?
答案 0 :(得分:0)
您发送该广播的那一刻,第一项活动已暂停,因此无法接收该广告。只有在第二个活动使用finish()终止后才会恢复。
如果您想在后台计算某些内容,可以使用Service
。
我不知道你为什么要在后台播放视频,但是你可以将View放在第一个活动中,并将视图可见性设置为不可见。
(实际上我刚才想到了一个原因,如果你认为我在想什么就是个好主意)