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中的接收器運行,偶爾會在片段類中運行。
我的預感是與螺紋部分有關。