如何从线程开始新意图?



我正在尝试从一个扩展AsyncTask的类的onPostExecute函数启动一个新的意图。此类与主活动类编写在同一个.java文件中,并在该主活动类的 onCreate 函数中执行。

public class AnnouncementsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
new GetAnnouncements().execute();
// ...
}
private class GetAnnouncements extends AsyncTask<Void, Void, Void> {
ArrayList<HashMap<String, String>> announcementsList = null;
ProgressDialog progressDialog;
protected void onPostExecute(Void requestResult) {
super.onPostExecute(requestResult);
// ...
announcementsListView.setAdapter(adapter);
announcementsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent openInBrowserIntent = new Intent(AnnouncementsActivity.class, Uri.parse(announcementsList.get(position).get("link")));
}
});
// ...
}
}
}

我得到的错误是:

错误:找不到适合Intent(Class,Uri(构造函数Intent.Intent(String,Uri(不适用(参数不匹配;类不能转换为字符串(构造函数Intent.Intent(Context,Class(不适用(参数不匹配;类不能转换为上下文(

我在这里做错了什么?

这是正确的方法:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(announcementsList.get(position).get("link")));
startActivity(i);

最新更新