2012-04-09 3 views
0

BroadcastReceiver에서 장치에 설치된 apk를 실행하거나 열어야합니다.ANDROID - BroadcastReceiver에서 다른 응용 프로그램 시작

공용 클래스 C2DMMessageReceiver가 브로드 캐스트 리시버 {

@Override 
public void onReceive(Context context, Intent intent) { 
    String action = intent.getAction(); 

    Log.w("C2DM", "Message Receiver called"); 
    if ("com.google.android.c2dm.intent.RECEIVE".equals(action)) { 
     Log.w("C2DM", "Received message"); 
     ComponentName toLaunch = new ComponentName("es.mypackage","es.mypackage.myapplication"); 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_LAUNCHER); 
     intent.setComponent(toLaunch); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     context.startActivity(intent); 

내 장치가 방송을 수신하지만, 예상치 못한 문제로 실패를 확장 : 여기

는 코드입니다.

다른 apk를 시작하는 코드는 응용 프로그램의 다른 부분에서 정상적으로 작동합니다.

브로드 캐스트에서 다른 응용 프로그램을 시작할 수 있습니까?

대단히 감사합니다.

답변

1

제 경험에 따라 C2DM Receiver에서 활동을 시작할 수 없습니다. 그 서비스에 대한 서비스를 만들고 해당 활동에서 활동을 시작하고, 활동을 시작한 후에 서비스를 중지하십시오.

+0

내가 C2DM 수신기에서 활동을 시작할 수 있습니다, 감사합니다 : 의도 의도 = 새로운 의도(); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setClass (context, MuestraTexto.class); context.startActivity (intent); 괜찮 으면이 응용 프로그램의 창을 엽니 다. 외부 응용 프로그램을 시작할 때 게시 한 첫 번째 코드 만 실패합니다. 감사합니다 :) –

관련 문제