Android应用在重新打开后会显示白屏

时间:2014-08-20 03:41:43

标签: android

我创建了一个非常简单的应用程序,可以在手机浏览器中打开网站,这是唯一允许我打开pdf文件并正确发送联系人页面的代码,在应用程序打开并显示后,一切都完美无缺网页,如果你按回按钮它会显示带有标题的白页布局,你必须再按一次才能退出,或者如果按主页按钮然后返回应用程序,它会再次显示白页。我显然遗失了一些东西,有人可以告诉我如何解决。

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Uri uriUrl = Uri.parse("http://www.ribs2go.com.au");
    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
    startActivity(launchBrowser);

}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"

清单

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

2 个答案:

答案 0 :(得分:1)

我不确定您是否意识到您的应用无法加载网页本身。您的MainActivity只构造一个隐式Intent并将其传递给System。如果您设置了默认浏览器,则不会收到提示,它将直接打开您的默认浏览器。 就此而言,您的activity_main.xml可能是一个空的FrameLayout,并且不必是WebView。

除此之外,如果您的应用程序的意图只是重定向到某个网页(如书签),那么您看到的白页是您的MainActivity,它通常会在重定向后保留在Backstack中。这就是回退或从应用切换器中选择应用的原因,将显示白页(这是您的MainActivity)。

从历史/背书中排除它可能会解决问题(虽然没有试过),试一试:

清单:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:noHistory="true"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

让我知道它是否有效。

答案 1 :(得分:0)

当您点击回来时,正在显示您的应用程序的MainActivity。启动浏览器活动后,完成当前活动。在MainActivity上的onCreate方法中,

...

Uri uriUrl = Uri.parse("http://www.ribs2go.com.au");
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);
finish(); // This is the fix, finish MainActivity

此应用程序启动时也可能出现此白屏问题。要解决此问题,请将透明的全屏主题设置为MainActivity。