【问题标题】:Launch the browser from an activity and then exit the application, leaving the browser open从活动启动浏览器,然后退出应用程序,让浏览器保持打开状态
【发布时间】:2014-07-29 22:48:09
【问题描述】:

首先!
好的,所以我正在为未托管在商店中的应用程序开发应用程序“更新系统”。我想做的是从活动启动浏览器,然后退出应用程序,让浏览器保持打开状态。可以做到这一点,如果可以的话,你能指出我正确的方向吗?
编辑:
我不知道这是否会改变我希望通过 AlertDialog 这样做的任何内容。

【问题讨论】:

  • 我不知道你的具体要求,但你真的不需要打开浏览器从服务器下载更新 apk。
  • 是的,我知道,但这就是我现在的做法。它只是为了让它更漂亮,并在我强制安装时给用户一些控制权。稍后我可能会根据要求切换它的工作方式。

标签: java android


【解决方案1】:

这是您启动浏览器的方式:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.somewebsite.com"));
startActivity(browserIntent);

这就是你完成活动的方式:

finish();

完成一个活动与退出整个应用程序不同,因为堆栈中可能有很多活动。但是,您可以(并且应该)将此任务留给系统 - 当没有足够的可用资源时,您的应用程序的进程将自动终止。 供参考:Quitting an application - is that frowned upon?

编辑:带有 AlertDialog 的示例:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Launch a website?");
builder.setPositiveButton(getString(R.string.yes),
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("http://www.somewebsite.com"));
            startActivity(browserIntent);
            finish();
        }
    }
);
builder.setNegativeButton(getString(R.string.no),
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            //some other thing to do
        }
    }
);

AlertDialog dialog = builder.create();
dialog.show();

【讨论】:

    【解决方案2】:

    您需要创建一个新 Intent 以在您的设备上打开浏览器并在您启动新 Intent 后完成当前活动。

    Intent browserIntent = new Intent(Intent.ACTION_VIEW);
    browserIntent.setData(Uri.parse("http://www.google.com"));
    startActivity(browserIntent);
    finish();
    

    【讨论】:

      猜你喜欢
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2016-09-11
      • 2014-01-08
      • 2019-04-12
      相关资源
      最近更新 更多