【发布时间】:2016-04-24 06:51:11
【问题描述】:
我正在尝试通过单击文本视图来打开标准的 android 网络浏览器。 我在 textview 中定义了 android:autoLink="web" 然后使用 onTouchListener 来启动 browserintent:
// On Touch Listener
chatText.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent event) {
// view.performClick();
view.onTouchEvent(event);
if (event.getAction() == MotionEvent.ACTION_DOWN){
view.performClick();
openBrowser(chatText.getText().toString());
}
return false;
}
});
// Start Browser function
public void openBrowser(String url) {
Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (webIntent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(webIntent);
}
}
但是,每次我点击我的文本视图上的链接时,我都会收到错误:
从 Activity 上下文之外调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?
虽然我在新开始的活动中添加了标志,但有人知道我在这里做错了什么吗?
我从扩展 ArrayAdapter 的 ChatArrayAdapter 类调用活动,但是,我将适当的上下文传递给新启动的活动
【问题讨论】:
标签: android android-intent android-browser