在Android上按主页按钮 - 恢复应用时的白色屏幕

时间:2014-12-08 14:26:15

标签: java android cordova android-activity

我正在使用phonegap创建一个Android应用。每当我在我的应用程序中按下主页按钮然后尝试再打开应用程序时,我会得到一个白色的空白屏幕 - 只有在触摸屏幕时才会消失。 看一下logcat,我在触摸屏幕后收到一条消息说blockWebkitDraw已锁定。

如果我按下后退按钮退出应用程序然后返回 - 它工作正常,所以真的不确定为什么它对主页按钮不起作用。

这是我在清单中的活动:

<activity android:name=".PhoneGapActivity" android:launchMode="singleTop" android:configChanges="orientation|keyboardHidden|screenLayout|screenSize">
        <intent-filter>
            <action android:name="com.matt.android.theAppName.MESSAGE"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

有效的一件事是覆盖暂停方法:

   @Override
     public void onPause() {
       super.onPause();
       this.finish();
   }

但这会使活动重启 - 这并不理想。

如果有人知道为什么会这样,我真的很感激任何意见,谢谢。

编辑:

onCreate方法:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.d(TAG, "onCreate");

    int splashImageResourceIdentifier = getResources().getIdentifier("splash", "drawable", getPackageName());
    if (splashImageResourceIdentifier != 0) {
        super.setIntegerProperty("splashscreen", splashImageResourceIdentifier);
        super.loadUrl(WORK_DIR + getStartFileName(), 10000);
    } else {
        super.loadUrl(WORK_DIR + getStartFileName());
    }

    super.setIntegerProperty("loadUrlTimeoutValue", 60000);
    this.appView.clearCache(false);
    this.appView.clearHistory();

    // Set some defaults
    this.appView.setHorizontalScrollBarEnabled(false);
    this.appView.setHorizontalScrollbarOverlay(false);
    this.appView.setVerticalScrollBarEnabled(false);
    this.appView.setVerticalScrollbarOverlay(false);

    if (getIntent().hasExtra(Constants.EVENT.MESSAGE_RECEIVED)) {
        // Application is started by clicking on notification
        PushNotifications.handleMessage(getIntent());
    }

    // Set some defaults on the web view
    this.appView.getSettings().setBuiltInZoomControls(false);
    this.appView.getSettings().setSupportZoom(true);
    this.appView.getSettings().setGeolocationEnabled(true);
    this.appView.getSettings().setLightTouchEnabled(false);

    // Caching is preventin android 2.3.3 from working properly with REST calls (ETST-5834, ETST-6716)
    this.appView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

    this.appView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);

    /*
    Enabling hardware acceleration to make CSS rules like translate3d work properly.
    0x01000000 is actually WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED flag, but it doesn't exist in
    android 2.2.1 lib that is present in maven dependency management.
     */
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        getWindow().setFlags(0x01000000, 0x01000000);
    }
}

我在活动中没有onResume方法。

0 个答案:

没有答案