当我们在Adapter或者其他地方(如Service、BroadCastReceiver、Widget等)中使用startActivity(),会报一个异常: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
解决办法:这时需要为Intent设置一个Flag:FLAG_ACTIVITY_NEW_TASK
具体操作:Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 这样就不会报错了,可以顺利的startActivity()。
在Activity中使用startActivity()的方法不会有任何限制,是因为Activity重载了Context的startActivity()方法。