2016-10-05 3 views
0

키패드가 잠겨있을 때 새로운 Activity "ActivityB"를 시작합니다 (키패드가 잠기기 전에 ActivityA가 백그라운드로 설정되었습니다). ActivityB가 30 초 후에 종료되고 자체를 닫으 려하므로 30 초 후 마무리 작업을 호출했지만 표시되지는 않습니다. 잠금을 해제하면 배경에 2 개의 앱/활동이 표시됩니다. 그래서 activityB를 끝내기 위해 Intent.ACTION_USER_PRESENT broadcastreceiver를 사용했으나 여전히 작동하지 않습니다.브로드 캐스트 리시버의 백그라운드 활동 완료

Manifest.xml

<receiver 
      android:name="com.example.reciever.UnlockReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
      </intent-filter> 
     </receiver> 

UnlockReceiver :

private Activity b; 
onCreate() { 
b= this; 
} 
: 공용 클래스 UnlockReceiver가 {

@Override 
public void onReceive(Context arg0, Intent intent) { 
     if (ActivityB.b != null) { 
      ActivityB.b .finish(); 
     } 
} 

}

ActivityB 브로드 캐스트 리시버를 확장 우리가 푸시받을으로3210

ActivityB이 시작됩니다 :

Intent pushIntent = new Intent(context.getApplicationContext(), ActivityB.class); 
       pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

내가 장치의 잠금을 해제 할 때 onReceive 잘이라고 참조하지만 백그라운드에서 ActivityB을 finsih하지 않습니다. 따라서 백그라운드에서 같은 앱 2 개를 볼 수 있습니다.

답변

0

사용자는 활동 b를 작성중인 활동을 의도했을 수 있습니다. 내가 매니페스트 파일에 안드로이드 아래의 속성을 설정 한 후 문제가 수정되었습니다

+0

I 30 초 후 마무리이라고를, 작동 것 같지 않습니다. ActivityB는 pushnotification을 기반으로 시작되었습니다. 나는 분명히 ActivityT를 지우는 CLEAR TASK를 사용했습니다. –

+0

백그라운드 서비스에서 명확한 작업을 구현하려고 시도합니다. –

+0

android : launchMode = "singleTop"설정과 같이 보입니다. –

0

: launchMode = "singleTop"

관련 문제