首先,我已經嘗試添加flag_activity_new_task,但它仍然不起作用。當從廣播接收器開始一個活動時,應用程序崩潰,從服務發送
這裏是流程: 我有一個服務運行,在後臺線程上執行http請求並獲取數據。無論何時收到某些數據,我都需要將其顯示給用戶(例如,可以更新應用程序)。爲此,我使用廣播,並設置了一個接收器。一切工作正常,直到這裏。
但是,當我TRU從這個接收器開始活動,應用程序崩潰說:
"01-15 17:03:30.129: E/AndroidRuntime(28014): 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?
"
即使我已經加入該標誌。下面是代碼:
服務部分:
try
{
JSONObject mAdDetails = mResult.getJSONObject(Tags.TAG_RPC_SMALL_AD_DETAILS);
Intent mI = new Intent();
mI.setAction(ReceiverAdvertSmall.INTENT_ACTION);
mI.putExtra(AppMapKeys.KEY_AD_HEADING, mAdDetails.getString(Tags.TAG_RPC_AD_HEADING));
mI.putExtra(AppMapKeys.KEY_AD_DESCRIPTION, mAdDetails.getString(Tags.TAG_RPC_AD_DESCRIPTION));
mI.putExtra(AppMapKeys.KEY_AD_LINK, mAdDetails.getString(Tags.TAG_RPC_AD_LINK));
sendBroadcast(mI);
}
catch(JSONException e)
{
}
接收器部分:
@Override
public void onReceive(Context mContext, Intent data)
{
Intent mI = new Intent(mContext, ActivityAdvertSmall.class);
mI.putExtras(data.getExtras());
mI.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(data);
}
我究竟做錯了什麼? Iam在最後一個小時無法弄清楚。
Thanx提前...
媽的意圖!謝謝....這個愚蠢的錯誤 –