2016-10-05 9 views
0

Я запускаю новую активность «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 из тех же приложений в фоновом режиме

ответ

0

у вас может быть намерение в действии a, которое создает действие b;

+0

я назвал закончить через 30 секунд, он не похоже на работу. ActivityB запускается на основе pushnotification, я использовал CLEAR TASK, который dosnt, похоже, очистил ActivityA –

+0

попытался реализовать эту ясную задачу в фоновом режиме –

+0

выглядел как установка android: launchMode = "singleTop" исправил проблему –

0

Вопрос был установлен после того, как я установил ниже свойство в файле манифеста андроида: launchMode = «SingleTop»