从按钮单击Widget打开浏览器

时间:2013-08-30 12:42:34

标签: android android-widget broadcastreceiver

我尝试通过点击小部件上的按钮打开浏览器。我使用了BroadcastReceiver,其中onReceiver()我要打开浏览器。

我得到的错误如下:

Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

3 个答案:

答案 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);

}
}