问题描述
|
嗨,我想在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();从代码中进行尝试。
请享用。