Я запускаю новую активность «ActivityB», когда клавиатура заблокирована. (ActivityA была вставлена перед клавиатурой заблокирована). ActivityB истекает через 30 секунд и должен закрыть себя, поэтому я позвонил финишу через 30 секунд, хотя не видно, после того, как я разблокирую, я вижу 2 отдельных приложения/действия в фоновом режиме. Итак, я использовал Intent.ACTION_USER_PRESENT broadcastreceiver, чтобы закончить ActivityB, но он не работает.завершение фоновой активности от широковещательного приемника
Manifest.xml
<receiver
android:name="com.example.reciever.UnlockReceiver">
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
UnlockReceiver: общественный класс UnlockReceiver расширяет BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent intent) {
if (ActivityB.b != null) {
ActivityB.b .finish();
}
}
}
ActivityB:
private Activity b;
onCreate() {
b= this;
}
ActivityB запускается как мы получаем толчок:
Intent pushIntent = new Intent(context.getApplicationContext(), ActivityB.class);
pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
Я вижу OnReceive называется хорошо, когда я разблокировать устройство, но это не finsih ActivityB в фоновом режиме. Следовательно, я вижу 2 из тех же приложений в фоновом режиме
я назвал закончить через 30 секунд, он не похоже на работу. ActivityB запускается на основе pushnotification, я использовал CLEAR TASK, который dosnt, похоже, очистил ActivityA –
попытался реализовать эту ясную задачу в фоновом режиме –
выглядел как установка android: launchMode = "singleTop" исправил проблему –