美文网首页
Calling startActivity() from out

Calling startActivity() from out

作者: 12e247aaefbd | 来源:发表于2018-12-17 19:26 被阅读14次

    调用context.startActivity(intent)方法,报错如下:
    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继承自Context,查看Context.startActivity(Intent, Bundle),下图是该方法注释的一部分:

    Context.png

    翻译一下:注意,如果这个方法被一个不是Activity的Context调用,那么这个Intent必须包括Intent.FLAG_ACTIVITY_NEW_TASK这个flag。这是因为,如果不是被一个已存在的Activity启动,就没有已存在的栈去替换新的Activity,所以需要让它在自身的栈中。

    就是说,如果这个context不是Activity,那么该Intent就必须执行Intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)这个方法,让新Activity在它自身的栈中。

    相关文章

      网友评论

          本文标题:Calling startActivity() from out

          本文链接:https://www.haomeiwen.com/subject/jfnckqtx.html