1
在Android应用程序,我注册了一个接收器MainActivity的onCreate两个接收器的Android LocalBroadcast的,一个在MainActivity,另外在片段
IntentFilter mFilter = new IntentFilter("Action");
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, mFilter);
在它的onResume
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Intent i = new Intent("Action");
LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(i);
}
});
}
}).start();
坦率地说,我不知道为什么我们想要使用线程本身(我从没有完全消化它的地方复制代码)。
此应用程序支持ViewPager,从而在其相关的片段的onCreate
IntentFilter mFilter = new IntentFilter("Action");
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, mFilter);
在这两个MainActivity和片段类,接收器看起来像:
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
...
}
只有里面有什么的onReceive这两类不同。
我不太了解LocalBroadcast是如何工作的,我期待这两个接收者处理程序在发送广播后都会运行。相反,我注意到大多数时间只有MainActivity中的接收器运行,偶尔会在片段类中运行。
我的预感是与螺纹部分有关。