2012-02-21 2 views
2

Android 용 시나리오는 다음과 같습니다. 시작했을 때 서비스이 시작되는 앱이 있습니다. 해당 서비스는 30 분마다 URL을 확인합니다. 특정 응답을 받으면 앱이 수신하고 처리하는 브로드 캐스트 을 보냅니다. 그 시나리오는 나에게 위대한 일이다.브로드 캐스트 수신기의 활동 시작

사용자가 응용 프로그램 (포 그라운드에서 벗어난 앱) 실행을 중단 한 후에도 서비스가 계속 실행되기를 바랍니다. 어떤 작업도 진행 중입니다. 내가 직면하고있어

문제는 활동 브로드 캐스트 메시지를 수신 때, 나는 전경로 다시 이동 작업을 얻을 수 있다는 것입니다. 다양한 의도의 조합을 시도했지만 이해하지 못했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

내 브로드 캐스트 리시버의 코드는 다음과 같습니다 당신이 원하는

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     launchApp(); 
    } 
}; 

private void launchApp() { 
    Intent vukaniActivity = new Intent(this, Vukani.class); 

    // I've tried multiple different flags to no avail. 
    vukaniActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(vukaniActivity); 
} 

답변

6

플래그는 다음과 같습니다

또한
vukaniActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
         | Intent.FLAG_ACTIVITY_CLEAR_TOP 
         | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

, 당신은 UI 스레드에서 실행하고 있는지 확인하십시오.

runOnUiThread(new Runnable(){ 
    @Override 
    public void run(){ 
    launchApp(); 
    } 
}); 
+0

아름다운 - 매력처럼 작동했습니다! –

관련 문제