我尝试通过点击小部件上的按钮打开浏览器。我使用了BroadcastReceiver
,其中onReceiver()
我要打开浏览器。
我得到的错误如下:
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
答案 0 :(得分:1)
如果您开始并且活动形成一个不可见的组件,例如BroadcaseReceiver
,则需要使用FLAG_ACTIVITY_NEW_TASK
标志。这就是错误所说的。这是一个可能的解决方案。
Intent intent = new Intent(<Your action here>);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
或者,您可以先显示通知。这只会在状态栏中显示一条消息,并且不会中断当前用户的活动(例如游戏)。之后,当用户有时间时,他或她可以单击此通知,然后将打开浏览器。
答案 1 :(得分:0)
希望这有助于---&gt;
Button1 = (Button) findViewById(R.id.b1);
String text ="Visit <a href=\"http://manning.com/\">Manning home page</a>";
Button1.setText(Html.fromHtml(text));
Button1.setMovementMethod(LinkMovementMethod.getInstance());
答案 2 :(得分:-2)
button = (Button)findViewById(R.id.xxxx);
button.setOnClickListener(View.OnClickListener){
public void onClick(){
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
}