单击“活动”中的URL时出现AndroidRuntimeException

时间:2017-07-24 22:46:43

标签: java android runtimeexception

我有一个extends RecyclerView.Adapter<UserProfileAdapter.ViewHolder>的适配器活动。问题是当用户点击其中一个列表项中的“自动链接”时,我会遇到以下异常:

在我的UserProfileActivity中,我实例化我的适配器,如:

UserProfileAdapter adapter = new UserProfileAdapter(getApplicationContext(), posts);

在适配器中,我检索这样的上下文:

    private Context mContext;
    private List<ParseObject> mYeets;
    private UserProfileAdapter adapter;

    public UserProfileAdapter(Context context, List<ParseObject> yeets) {
        super();

        this.mYeets = yeets;
        this.mContext = context;
        this.adapter = this;
    }

enter image description here

如何确保自动链接的文本不会产生此错误?由于没有与链接/意图相关的代码,我甚至可以做什么?

1 个答案:

答案 0 :(得分:2)

抛出

android.util.AndroidRuntimeException因为您的应用程序正在使用应用程序上下文来启动没有标志FLAG_ACTIVITY_NEW_TASK的活动。 Android Runtime不允许这种操作,因为没有Stack来添加这个新的Activity,FLAG_ACTIVITY_NEW_TASK标志对于在你的应用程序中创建一个新的堆栈很重要。

要解决此问题,您可以将Activity上下文传递给Adapter而不是Application Context(即:use this)。

例如:UserProfileAdapter adapter = new UserProfileAdapter(this, posts);

良好做法:始终使用活动上下文来处理UI元素。