[英]Android app shows white screen after reopening
我创建了一个非常简单的应用程序,可以在手机浏览器中打开网站,这是唯一允许我打开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>
我不确定您是否意识到自己的应用程序不会加载网页本身。 您的MainActivity只是构造一个隐式Intent并将其传递给System。 如果您设置了默认浏览器,则不会提示您,它将直接打开默认浏览器。 因此,您的activity_main.xml可以是一个空的FrameLayout,而不必是WebView。
这样一来,如果应用程序的意图只是重定向到某个网页(如书签),那么您看到的白页就是您的MainActivity,它通常在重定向后仍留在后台。 因此,按回去或从应用程序切换器中选择您的应用程序将显示白页(这是您的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>
让我知道是否有效。
当您点击时,将显示您的应用程序的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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.