まず、flag_activity_new_task を追加しようとしましたが、まだ機能していません。
フローは次のとおりです。バックグラウンド スレッドで http 要求を実行し、データを取得するサービスを実行しています。特定のデータを受信するたびに、それをユーザーに表示する必要があります (たとえば、アプリの更新が利用可能です)。このために、ブロードキャストを使用し、受信機をセットアップしました。ここまではすべて正常に動作します。
しかし、このレシーバーからアクティビティを開始しようとすると、アプリがクラッシュして次のように表示されます。
"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);
}
私は何を間違っていますか? 私は最後の1時間それを理解することができません.!!
事前にサンクス...