我有一个名为Main.java的活动在我的应用程序中开启,我想使用广播接收器关闭该活动,如何关闭活动?
@Override
public void onResume() {
registerReceiver(broadcastReceiver, new IntentFilter(BroadcasterClassName.NAME_OF_ACTION));
}
然后处理广播并完成您的活动:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BroadcasterClassName.NAME_OF_ACTION)) {
finish();
}
}
}
你可以向实现了Handler.Callback接口的Activity发送一条消息,在那里处理以关闭该Activity。
快速示例:
class Act1 extends Activity implements Handler.Callback {
public static final int CLOSE_ACTIVITY = 54212;
public boolean handleMessage(Message msg) {
if(msg.what == CLOSE_ACTIVITY) {
finish();
}
}
}
然后,由于您的BroadcastReceiver通常在主线程上运行。只需通过Handler发送消息即可。
new Handler().sendMessage(MessageFactory.createShutdownMsg()).
private static Main mInstance;
onCreate()
{
...
mInstance = this;
}
public static boolean closeActivity()
{
if (mInstance != null)
{
mInstance.finish();
return true;
}
return false;
}