您的位置:首页 > 其它

用BroadCast来退出应用

2016-07-29 16:17 197 查看
广播的优势,可以跨栈操作,当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);
}

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: