在BroadcastReceiver中无法直接关闭某个activity,因为BroadcastReceiver并没有直接的UI控制权限。但可以通过发送广播的方式,让activity自行关闭。

具体步骤如下:

  1. 在activity中注册一个广播接收器,用于接收关闭activity的广播。

  2. 在BroadcastReceiver中发送关闭activity的广播。

  3. 在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);
    }
}
``
安卓在编写程序时在BroadcastReceiver中如何关闭某个activity

原文地址: https://www.cveoy.top/t/topic/fXKP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录