2012-04-09 19 views
0

Ich muss eine installierte APK in meinem Gerät von einem BroadcastReceiver starten/öffnen. HierANDROID - Starten Sie eine andere Anwendung von einem BroadcastReceiver

ist der Code:

public class C2DMMessageReceiver erweitert BroadcastReceiver {

@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); 

Mein Gerät empfängt die Sendung aber nicht mit einem unerwarteten Problem.

Der Code zum Starten anderer apk funktioniert gut in anderen Teil der Anwendung.

Ist es möglich, andere Anwendung von einer Sendung zu starten?

Vielen Dank.

Antwort

1

Nach meiner Erfahrung können Sie nicht starten Aktivität aus dem C2DM-Empfänger, ich fand Arbeit dafür, Erstellen Sie einen Dienst und starten Sie Aktivität von diesem Dienst, Service zu stoppen, nachdem Sie die Aktivität starten.

Danke,

+0

ich eine Aktivität vom C2DM Receiver starten: Intent Absicht = new Intent(); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setClass (Kontext, MuestraTexto.class); context.startActivity (Absicht); Dies funktioniert gut, öffnet ein Fenster meiner Anwendung. Scheitert nur den ersten Code, den ich beim Starten einer installierten Exteral-Anwendung gepostet habe. Danke :) –

Verwandte Themen