2012-01-07 33 views
0

我有一個簡單的c2dm消息接收器類,只要設備收到c2dm消息就會被調用。在一種情況下,我希望消息接收者類執行意圖切換以加載不同的活動。安卓拋出一個異常,當發生這種情況如何從c2dm消息接收者調用意圖開關

01-07 02:28:52.480: E/AndroidRuntime(440): Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 

我想我可以調查此標誌在異常的建議,但我不知道是否也許我採取錯誤的做法,有一個更好的方式來做到這一點?

C2DM消息接收器類:

public class C2DMMessageReceiver extends 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"); 
        final String payload = intent.getStringExtra("payload"); 
        Log.d("C2DM", "dmControl: payload = " + payload); 

        // Message handling 
        if(payload.equals("RdyRoom::join")) { 
         Intent rIntent = new Intent(context.getApplicationContext(), ReadyRoomActivity.class); 
         context.startActivity(rIntent); 
        } 
       } 
      } 
} 

感謝您的任何想法

+0

我建議閱讀的標誌。它在意向文檔中。但是,您能否提供更多關於您想要完成的信息?用戶是否在活動中並正在等待此響應?之前會發生什麼,以後你想發生什麼? – cottonBallPaws 2012-01-07 02:52:20

回答

1

添加到您的意圖

Intent.FLAG_ACTIVITY_NEW_TASK 
+0

你的情況rIntent。 – 2012-01-07 02:52:35