需要帮助来理解此异常:
system_log_all 11-14 11:52:28.540 E/AndroidRuntime(31615): FATAL EXCEPTION: main
system_log_all 11-14 11:52:28.540 E/AndroidRuntime(31615): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
system_log_all 11-14 11:52:28.540 E/AndroidRuntime(31615): at android.app.ContextImpl.startActivity(ContextImpl.java:689)
system_log_all 11-14 11:52:28.540 E/AndroidRuntime(31615): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
system_log_all 11-14 11:52:28.540 E/AndroidRuntime(31615): at android.content.ContextWrapper.startActivity(ContextWrapper.java:258)
“活动背景之外”的含义是什么?我不认为我从“应用程序”上下文中调用“startActivity”,那么它在活动上下文中的含义是什么?
谢谢。
答案 0 :(得分:8)
要清除上一个答案,您需要在开始活动之前将以下内容添加到意图中:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
然后,Android会让您在喜欢它的地方开始活动。
答案 1 :(得分:5)
正如@thinksteep评论的那样,您似乎试图从其他内容调用startActivity()
,然后调用Activity
。
您是否正在尝试从Service
开始活动?
这就是您要做的事情,您应该遵循警告中的建议并将FLAG_ACTIVITY_NEW_TASK
添加到您的意图标记中。
我发现警告的原因是你试图从一个不是自己的UI组件的东西启动一个UI组件。大多数时候,从可用性的角度来看,这并不是你想要的。
例外情况可能是来电等。
答案 2 :(得分:2)
我知道这有点迟到了。但是刚才我也是从同一个问题出来的。所以我想在公开场合发布这个帖子,对于处于相同情况的其他人可能会有所帮助。我刚使用Myclassname.this
代替getApplicationContext();
。