从广播接收器杀死Android进程

时间:2011-06-15 03:28:06

标签: android android-activity usb broadcastreceiver kill-process

嗨我想在usb断开连接时杀死我的应用程序中的活动我有一个广播接收器,所有设置和工作正常

public class USBOff extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Intent intent1 = new Intent(context, SdcardOff.class);
    startActivity(intent1);
    finish();
    }
 }

但是这段代码告诉我需要创建finish方法和startActivity方法吗?为什么这不起作用谢谢你对我的问题有任何帮助

3 个答案:

答案 0 :(得分:2)

startActivity是Context方法,而不是BroadcastReceiver方法。 finish是一种Activity方法。试试这个:

context.startActivity(intent1);

您无法从BroadcastReceiver呼叫finish

答案 1 :(得分:0)

我找到了一个interxting方法: Manfest:

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”对您来说是个问题),它将无法在此类配置中运行,

我希望它会有所帮助

答案 2 :(得分:0)

简单逻辑:

如果你不想杀死活动,那么不要使用finish()如果你想杀死活动,那么你应该调用finish();

所以删除finish();从代码中试一试。 享受。