2012-02-10 66 views
1

我开发了一个非常简单的Android本机应用程序来启动我的HTML5 web应用程序。 这里是主类:Android - 更好的网站启动器本机应用程序

package com.plancake.android.app; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 

public class PlancakeActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.main); 

     Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("https://www.mywebsite.com")); 
     startActivity(viewIntent); 
    } 
} 

当我点击从我的主屏幕图标第一次,一切工作正常:Android的打开了浏览器和Web应用我的加载。可爱!

的问题,当我离开的网页浏览器,我再次从主屏幕或任务管理器我的启动器图标点击出现。在那种情况下,我只能看到黑屏。

我认为问题是,Android的调用的onResume方法(或别的东西),反正不是的onCreate在后一种情况下。

我可以看到两个解决方案:
1)无论是我复制在所有其他方法,如在onStart,OnRestore中的startActivity电话 - 但在这种情况下,恐怕我的应用程序将创建一个新的浏览器窗口,每次,因此消费很多的内存不必要
2)或每个抽头后,迫使我的桌面应用留下的记忆,这样的onCreate方法被调用每次我点击 - 但在这种情况下,即使我“杀”我的应用程序,浏览器会可仍然打开,以便下一次我在我的启动器图标,点击一个新的浏览器窗口将被创建反正

我希望我是在描述我的问题,我想的解决方案很清楚 - 这他们的任重新理想。

请,我想知道你会建议如何解决我的问题。

感谢,

+0

你试图调用完成()你解雇你的意图后, ? – 2012-02-10 12:48:21

+0

我会在onPause方法中调用finish(),但我不知道你可以做些什么来打开另一个窗口,我甚至不知道你是否可以关闭另一个应用程序的窗口,也许有一种方法来检查窗口是否已经存在被打开或不 中的onPause方法调用完成将停止黑屏,但林仍然没有窗户 – FabianCook 2012-02-10 12:49:19

+0

@Espiandev上肯定还没有。但是,无论如何,要走的路呢?即使我杀了我的应用程序,浏览器仍然“活着”。所以当我再次点击启动器图标时,尽管已经打开了相同的窗口,但是会创建一个新的浏览器窗口,对吗? – dan 2012-02-10 12:50:23

回答

1

的的onResume()方法的onCreate后,总是叫()。

如果你离开你的活动,它不是由系统终止,那么它可能不会被“创造”了起来。它处于暂停状态。

你应该做的是你的代码移动到的onResume(),以确保意图创造的WebView是叫你输入你的应用程序,每一次

+0

这是否意味着每次进入我的应用程序时,都会创建一个新的浏览器窗口? – dan 2012-02-10 12:53:54

+0

我不这么认为。但是,会出现的问题是,您必须处理当您在浏览器上时触摸后退键时发生的情况。如果意图在onResume()方法中,它将被创建。为此,您应该调用startActivityForResult并覆盖onActivityResult方法 – MobileCushion 2012-02-10 12:59:47

+0

我明白了。我能达成什么样的结果? – dan 2012-02-10 13:04:33

相关问题