我有一个监听手机解锁事件的广播。但是,当应用程序的进程被终止并且不再在内存中时,解锁手机不会触发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();
}
}
}
我无法理解这种行为。这是默认行为吗?
答案 0 :(得分:0)
您必须在“活动”(或“服务”中注册和取消注册此广播接收器,以便始终在后台收听)。 清单条目无法正常工作。