ブロードキャストレシーバーからのAndroid Killプロセス
-
28-10-2019 - |
質問
こんにちは私は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メソッドを作成する必要があることを教えてくれますか?なぜこれがうまくいかないのですか私の問題の助けに感謝します
解決
startActivity
BroadCastReceiverメソッドではなく、コンテキストメソッドです。 finish
アクティビティ方法です。これを試して:
context.startActivity(intent1);
電話することはできません finish
放送局から。
他のヒント
私はインターエクスティング方法を見つけました:manfest:
android:launchMode="singleInstance"
<action android:name="com.gr.app.KILLSELF" />
受信コード:
Intent intentInterface = new Intent("com.gr.app.KILLSELF");
mContext.startActivity(intentInterface);
アクティビティオンクリートパーツ:
if (intent.getAction().compareTo("com.gr.app.KILLSELF") == 0) {
finish();
};
アクティビティの多くのインスタンスがある可能性がある場合、このような構成では機能しません(string android:launchmode = "singleinstance"は問題です)、
私はそれが役立つことを願っています
簡単なロジック:
アクティビティを殺したくない場合は、finish()を使用しないでください。アクティビティを殺したい場合は、finish()を呼び出す必要があります。
したがって、finish()を削除します。コードから、試してみてください。楽しみ。
所属していません StackOverflow