【问题标题】:Android kill process from broadcast receiverAndroid 从广播接收器杀死进程
【发布时间】:2011-06-15 03:28:05
【问题描述】:
您好,我希望在 USB 断开连接时终止我的应用程序中的一个活动,我有一个广播接收器,并且所有设置都可以正常工作
public class USBOff extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent1 = new Intent(context, SdcardOff.class);
startActivity(intent1);
finish();
}
}
然而,这段代码告诉我需要创建完成方法和 startActivity 方法?为什么这不起作用谢谢你对我的问题的任何帮助
【问题讨论】:
标签:
android
android-activity
usb
broadcastreceiver
kill-process
【解决方案1】:
startActivity 是 Context 方法,而不是 BroadcastReceiver 方法。 finish 是一个 Activity 方法。试试这个:
context.startActivity(intent1);
您不能从 BroadcastReceiver 调用 finish。
【解决方案2】:
我找到了一个 interexting 方法:
曼菲斯特:
android:launchMode="singleInstance"
<action android:name="com.gr.app.KILLSELF" />
接收方代码:
Intent intentInterface = new Intent("com.gr.app.KILLSELF");
mContext.startActivity(intentInterface);
活动 onCreate 部分:
if (intent.getAction().compareTo("com.gr.app.KILLSELF") == 0) {
finish();
};
如果您可能有许多活动实例(字符串 android:launchMode="singleInstance" 对您来说是个问题),它将无法在这样的配置中工作,
希望对你有帮助
【解决方案3】:
简单的逻辑:
如果你不想杀死活动,那么不要使用finish() 如果你想杀死活动,那么你应该调用finish();
所以去掉finish();从代码中尝试一下。
享受吧。