安卓在编写程序时在BroadcastReceiver中如何关闭某个activity
在BroadcastReceiver中无法直接关闭某个activity,因为BroadcastReceiver并没有直接的UI控制权限。但可以通过发送广播的方式,让activity自行关闭。
具体步骤如下:
-
在activity中注册一个广播接收器,用于接收关闭activity的广播。
-
在BroadcastReceiver中发送关闭activity的广播。
-
在activity的广播接收器中接收到广播后调用finish()方法关闭activity。
示例代码:
在activity中注册广播接收器:
public class MainActivity extends AppCompatActivity {
private BroadcastReceiver mCloseReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 注册广播接收器
mCloseReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 关闭activity
finish();
}
};
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.closeMainActivity");
registerReceiver(mCloseReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 取消注册广播接收器
unregisterReceiver(mCloseReceiver);
}
}
在BroadcastReceiver中发送广播:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 发送关闭activity的广播
Intent closeIntent = new Intent("com.example.closeMainActivity");
context.sendBroadcast(closeIntent);
}
}
``
原文地址: https://www.cveoy.top/t/topic/fXKP 著作权归作者所有。请勿转载和采集!