从Android应用程序打开Web浏览器

时间:2010-11-04 15:21:53

标签: android browser android-intent

我创建了一个应用程序来简单地打开Web浏览器并转到特定网站。然而,在它第一次运行后,如果我去另一个应用程序并再次运行应用程序,除黑屏外我什么也得不到。我知道我可以从网络浏览器中找到该页面,但是我想知道在我启动应用程序时是否有办法将内容恢复,用户可以从他/她停止的地方恢复工作。

这是我的代码:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    /** setup the url and start a browser with 
     *  the hotmial.com and return to the user
     * */
    String url = "http://www.hotmail.com";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);

}

谢谢你们

4 个答案:

答案 0 :(得分:3)

查看活动lifecycle。您可能希望将您的意图移动到OnStart(),以便在应用程序停止后返回到前台。

答案 1 :(得分:2)

第二次运行应用时,活动可能仍然存在;可能onCreate未被调用。

在您抛出Intent以运行浏览器之后,请关闭活动以便每次都发生onCreate

如果您的应用程序仅用于提供网站链接,我认为这是一个很大的开销。 Android用户可以在桌面上创建他们想要的任何网站的快捷方式,快捷方式图标显示在网站角落的网站上。

答案 2 :(得分:0)

如果要在应用程序外打开浏览器,请尝试此操作。我知道这似乎是一个简单的(和琐碎的)编辑,但我从来没有遇到过以这种方式设置它的问题。

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    /** setup the url and start a browser with 
     *  the hotmial.com and return to the user
     * */
    String url = "http://www.hotmail.com";
    Uri uri = Uri.parse(url);
    Intent i= new Intent(Intent.ACTION_VIEW, uri);  
    startActivity(i);

}

答案 3 :(得分:0)

为什么不使用android.webkit.WebView,它允许您直接浏览应用中的网页。只要应用程序正在运行,Web内容就会保持持久性。关于您的应用程序停止的可能性,您可以使用WebView.getURL()保存URL,这将允许您在下次启动应用程序时从您离开的位置继续。如果这是你想要做的,请告诉我,我会发布一些示例代码。