0
私は、電話機のロック解除イベントを監視するブロードキャストを持っています。しかし、アプリのプロセスが終了し、メモリがなくなると、電話のロックを解除してもReceiverが起動されず、代わりにAndroidスタジオでそのアプリケーションの新しいプロセスが作成されていることがわかります。プロセスが作成されたときにブロードキャストがトリガーされない
もう一度ロックしてロックを解除すると、プロセスが既に実行されているので、BroadcastReceiver
がトリガーされていることがわかります。
<receiver
android:name=".UserPresentBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
放送受信機:
public class UserPresentBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = UserPresentBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context arg0, Intent intent) {
Log.d(TAG, "onReceive: Unlock Boradcast received");
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
Toast.makeText(arg0, "You just unlocked the device", Toast.LENGTH_LONG).show();
}
}
}
私はこの動作を理解することができません。これはデフォルトの動作ですか?
これは機能します。実際に初めてデバイスのロックを解除すると、プロセスが作成されます。 2回目に私はデバイスのロックを解除し、私にトーストメッセージを表示しました。そして、2回目から、いつもうまく動作します。再びメモリから取り除かれた後、最初のアンロックは放送受信機をトリガしない。 – kirtan403
=>正しく動作しません。 –