ContextからstartActivity(intent)の実行

Activityのインスタンスをactivity,Contextのインスタンスをcontextとします.

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
activity.starActivity(intent);

これは成功します.

次にactivityではなく,contextで同じように書きます

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
context.startActivity(intent);

これは失敗します.
こんなエラーです.
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

エラーに従ってフラグ立てます.

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

これでactivityと同じように動作しました.

This entry was posted in プログラミング.

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>