Android 应用程序启动时,BroadcastReceiver中的onReceive会触发
我制作了一个示例,发现若我在应用程序启动时用代码onReceive触发器注册接收器。但是如果我在上下文中注册了一个,它不知道为什么Android 应用程序启动时,BroadcastReceiver中的onReceive会触发,android,broadcastreceiver,Android,Broadcastreceiver,我制作了一个示例,发现若我在应用程序启动时用代码onReceive触发器注册接收器。但是如果我在上下文中注册了一个,它不知道为什么 Activity: public class MainActivity extends AppCompatActivity { private BroadcastReceiver mBroadcastReceiver; private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
Activity:
public class MainActivity extends AppCompatActivity {
private BroadcastReceiver mBroadcastReceiver;
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getExtras().getString("SomeString");
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
mBroadcastReceiver = new SomeReceiver();
registerReceiver(mBroadcastReceiver, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,new IntentFilter("DanMan"));
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mBroadcastReceiver);
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
}
}
接收人:
public class SomeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("receiver", "action :" + intent.getAction());
intent.setAction("DanMan");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent.putExtra("SomeString", "Hello world!"));
}
}试着这样做,并告诉我它是否有效
private BroadcastReceiver mMessageReceiver;
mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getExtras().getString("SomeString");
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
};