今天调程序过程中,遇到一个错误,出现在Activity跳转的时候,错误Log如下:
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?
出现这个错误是因为在一个非Activity类中使用intent进行Activity的跳转。
首先说下,想要在一个不是Activity的类中实现到另一个Activity的跳转,intent中的参数可以如下设置:
Intent intent = new Intent(mContext,SecActivity.class);
其中mContext是FstActivity传过来的context。
要实现完整的跳转,先了解一下:Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新 的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。
那现在遇到这样的错误了,应该怎么解决呐?很简单哈,加一个FLAG就OK 啦~
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
加上上面那句代码,再试试看看哈~没有错误了吧!
哈哈~