0
点赞
收藏
分享

微信扫一扫

Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK

在普通java类里进行Activity跳转报错:
android.util.AndroidRuntimeException:
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

从Activity的上下文外部调用 startActivity()方法,需要FLAG_ACTIVITY_NEW_TASK 标志
解决

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );

Intent intent = new Intent(MyApplication.getContext(), CallActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
intent.putExtra(AppConst.TYPE_CALL, 1);
intent.putExtra(AppConst.IN_CALL, message);
MyApplication.getContext().startActivity(intent);

总结:
Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的話,就需要开启一个新的task,遇到这个异常,是因为使用了Context的startActivity方法。解决办法是,加一个flag。


举报

相关推荐

0 条评论