创建进程时不会触发广播

时间:2016-09-26 09:07:06

标签: android broadcastreceiver android-broadcast android-broadcastreceiver

我有一个监听手机解锁事件的广播。但是,当应用程序的进程被终止并且不再在内存中时,解锁手机不会触发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();
        }
    }
}

我无法理解这种行为。这是默认行为吗?

1 个答案:

答案 0 :(得分:0)

您必须在“活动”(或“服务”中注册和取消注册此广播接收器,以便始终在后台收听)。 清单条目无法正常工作。