1

こんにちは、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 メソッドを作成する必要があることを示していますか? なぜこれが機能しないのですか?私の問題について何か助けてくれてありがとう

4

3 に答える 3

2

startActivityBroadcastReceiver メソッドではなく、Context メソッドです。finishアクティビティメソッドです。これを試して:

context.startActivity(intent1);

finishBroadcastReceiver から呼び出すことはできません。

于 2011-06-15T04:08:07.210 に答える
0

私はinterextingメソッドを見つけました: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"は問題です)、このような構成では機能しません。

お役に立てば幸いです

于 2011-06-19T16:17:50.173 に答える
0

シンプルなロジック:

アクティビティを強制終了したくない場合は、finish() を使用しないでください。また、アクティビティを強制終了したい場合は、finish(); を呼び出す必要があります。

したがって、finish(); を削除します。コードから試してみてください。楽しみ。

于 2011-12-24T07:05:17.133 に答える