广播的优势,可以跨栈操作,当app内不止一个栈的时候,比较方便。
1.广播接收器和响应操作
public class FinishBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if("com.example.finish".equals(intent.getAction())){
Activity activty = (Activity) context;
activty.finish();
}
}
}
1注册广播接收器
public class MainActivity extends Activity {
private FinishBroadCastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView mTv = (TextView) findViewById(R.id.tv);
mTv.setText("MainActivity");
mTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
});
rigisterReceiver();
}
pr
2.发送广播
<pre name="code" class="java">public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView mTv = (TextView) findViewById(R.id.tv);
mTv.setText("ThirdActivity");
mTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendFinishBroadCast();
Toast.makeText(ThirdActivity.this, "前面的哥们你们先撤吧", 0).show();
}
});
}
private void sendFinishBroadCast() {
Intent intent = new Intent();
intent.setAction("com.example.finish");
sendBroadcast(intent);
}
}