0

У меня есть трансляция, которая контролирует событие разблокировки телефона. Но когда процесс приложения убит и больше не находится в памяти, разблокировка телефона не вызывает приемник, вместо этого я вижу в студии 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> 

Broadcast 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

Это работает. Фактически, когда я впервые разблокирую устройство, он создает этот процесс. Во второй раз я разблокировал устройство. Он показал мне тост-сообщение. И со второго раза все время он работает отлично. Снова после его удаления из памяти первая разблокировка не запускает широковещательный приемник. – kirtan403

+0

=> он не будет работать должным образом. –

Смежные вопросы