使用ApplicationContext启动standard模式的Activity报错原因解析

关于这个错误如何处理网上很多帖子都给出了答案,所以这里不再提及,但是出错的原因解释则很少提及,因此mark一下,以下笔者简单的解释一下:

错误提示日志:
02-10 13:26:11.048: ERROR/AndroidRuntime(17173): 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?

原因:
standard模式的Activity每次被启动时不管任务栈有没有该Activity实例存在,都会创建一个该Activity实例,该实例被放在启动这个standard模式Activity的那个Activity实例所在的任务栈里(即谁启动它,它就和谁放在一起(放在同一个任务栈)),这里启动这个standard模式的Activity的不是Activity,而是ApplicationContext,它不是Activity不会放在任务栈,所以当ApplicationContext来启动Standard模式的Activity的时候,这个standard Activity会发现自己找不到任务栈来安置自己,因此报错。

你可能感兴趣的:(Android)