我创建了一个非常简单的应用程序,可以在手机浏览器中打开网站,这是唯一允许我打开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>
答案 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。