2012-03-02 41 views
0

我想從廣播接收器爲自定義意圖啓動活動。我不想要該活動的多個實例,所以我不使用新的任務標誌。從應用程序上下文註冊的braodcast接收器啓動活動

我已經在清單中註冊了這些接收器。我收到錯誤

"03-02 12:54:58.634: W/System.err(3763): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?" 

我應該在哪裏註冊我的接收器?當嘗試註冊活動時,接收者可以啓動活動。
在清單中註冊時可能會出錯?

回答

2

請使用下面的代碼,

public void onReceive(Context context, Intent intent) 
{ 
    System.out.println ("Application Started"); 
    // put your TimerTask calling class here 

    try 
    { 
     Intent myIntent = new Intent (context, AutoStartExampleActivity.class); 
     myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(myIntent); 
    } 
    catch (Exception e) 
    { 
     System.out.println (" Error while Starting Activity " + e.toString()); 
    } 
} 
0

註冊的接收器在Android清單文件

<receiver android:name="com.example.XYZReceiver"></receiver> 
0

這是因爲Activity覆蓋ContextstartActivity()方法,所以如果你在一個叫startActivity()活動,不會有任何問題,但是如果您從context中調用它,則應該將國旗FLAG_ACTIVITY_NEW_TASK添加到意圖。

相關問題