Android从广播接收器杀死进程

问题描述

| 嗨,我想在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方法吗?为什么这不起作用,谢谢您对我的问题的帮助     

解决方法

        “ 1”是上下文方法,而不是BroadcastReceiver方法。
finish
是一种活动方法。尝试这个:
context.startActivity(intent1);
您无法从BroadcastReceiver呼叫
finish
。     ,        我发现了一种解释方法: 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();
    };
如果您可能有很多instanceof活动(字符串android:launchMode = \“ singleInstance \”对您来说是一个问题),则在这种配置下将无法使用, 希望对您有所帮助     ,        简单逻辑: 如果您不想杀死该活动,则不要使用finish(),如果您想杀死该活动,则应调用finish();。 因此删除finish();从代码中进行尝试。 请享用。