用BroadCast来退出应用

来源:互联网 发布:杀破狼贪狼 知乎 编辑:程序博客网 时间:2024/04/30 15:12

广播的优势,可以跨栈操作,当app内不止一个栈的时候,比较方便。

1.广播接收器和响应操作

public class FinishBroadCastReceiver extends BroadcastReceiver {@Overridepublic 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;@Overrideprotected 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() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this, SecondActivity.class));}});rigisterReceiver();}pr


2.发送广播

<pre name="code" class="java">public class ThirdActivity extends Activity {@Overrideprotected 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() {@Overridepublic 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);}}


0 0