2010-11-04 176 views
0

我创建了一个应用程序,只需打开Web浏览器并转到特定网站。但是,在第一次运行后,如果我再去另一个应用程序并再次运行应用程序,除黑屏外我什么也得不到。我知道我可以从网络浏览器中找到该页面,但是我不知道是否有一种方法可以在启动应用程序时将内容恢复,并且用户可以从他/她停止的位置重新开始工作。从Android应用程序中打开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); 

} 

谢谢你们

回答

3

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

+0

谢谢Bryan,但将我的意图转移到onstart会导致每次启动时显示相同的网页。比如说,如果我正在发送电子邮件的过程中,我会去听我的音乐,当我回来开始我的应用程序时,则会丢失我的电子邮件。所以我需要的是回到中断前的位置,而不是新的页面。 – Raymond 2010-11-04 16:23:13

2

当您再次运行应用程序时,活动可能仍然存在;或许onCreate未被调用。

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

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

+0

谢谢。我想要一个快捷方式,但是我稍后会做更多的事情,所以我必须创建一个应用程序来打开Web浏览器。既然我想回到我离开的地方工作,那么onCreate根本没有帮助我。我需要存储“会话”信息并返回。谢啦兄弟。 – Raymond 2010-11-04 16:27:01

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

} 
+0

谢谢。但是,它只是用作我的代码,并不能解决问题。 – Raymond 2010-11-04 16:30:53

0

为什么不使用android.webkit.WebView,它可以让你直接浏览你的应用中的网页。在这里,只要应用程序正在运行,Web内容将保持持久性。在您的应用程序停止的情况下,您可以使用WebView.getURL()保存该URL,这将允许您从下次启动应用程序时离开的地方继续。如果这是你想要让我知道,我会张贴一些示例代码。

相关问题