質問

こんにちは私は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()を削除します。コードから、試してみてください。楽しみ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top