1

コードに登録した受信機のアラームマネージャーがあります。場合に備えてアラームマネージャーを持つことの要点はTimer、一時停止状態のときにバックグラウンドで実行する必要があるということです。今、私はそれを登録解除しますかonPause()?OnDestroy()

編集:

   @Override
    public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context, MyClass.class);
    i.putExtra("fromReciever", true);
    startActivity(i);

    }
4

1 に答える 1

3

ファイルに登録することをお勧めしAndroidManifest.xmlます。例:

<receiver android:name="com.example.android.MyReceiver" >
    <intent-filter>
        <action android:name="com.example.android.USER_ACTION" />
    </intent-filter>
</receiver>

これにより、アプリケーションがデバイスにインストールされている限り、受信者が登録されたままになります。あなたがしなければならないのは、それを実装することだけです:

public class MyReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
      Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
   }

}

そして、あなたは設定されています。

さらに、詳細については、このチュートリアルをご覧ください。

追加した

再開したい場合Activityは、このコードをメソッドに追加できますReceiver onReceive

Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("fromOnReceive", true);
context.startActivity(intent);

次に、Activity onCreateメソッドで、それがあなたから呼び出されたかどうかを確認しますReceiver

@Override
protected void onCreate(Bundle savedInstanceState) {
    if(getIntent().hasExtras()){
        boolean fromReceiver = getIntent().getExtras().getBoolean("fromOnReceive");
        if(fromReceiver)
            //Do work 
    }
}
于 2015-02-19T18:35:48.773 に答える