首先明确需求: 我们现在的需求是在项目的任何地方都可以发出一个弹出框。或者启动一个activity。
首先在新建一个sevice 并且 在sevice 里面的 oncreate方法 注册一个自己需要的广播接收者
public class MyService extends Service {
private static final String MYACTION = "COM_ACTION_ONE";
public MyService() {
super();
}
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
@Override
public void onCreate() {
super.onCreate();
IntentFilter intent = new IntentFilter();
intent.addAction(MYACTION);
registerReceiver(broadcastReceiver,intent);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
class ServiceBinder extends Binder {
public MyService getService() {
return MyService.this;
}
}
}
2.在项目开始的地方 启动服务。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this,MyService.class));
}
3.接下来 就是可以
发送广播
Intent intent = new Intent();
intent.setAction(MYACTION);
sendBroadcast(intent);
intent里面还可以加 自己相带的数据
在 广播接收者的
onReceive方法里 执行自己想要的操作。