Хорошо, ребята, я решил эту проблему.
Ключом к решению была ориентация экрана.Как вы можете видеть в коде первого поста, я вызвал метод onCreate (): setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
В результате этого вызова действие было вызвано дважды из-за изменения ориентации.Вот причина, по которой я использовал:
if(Controller.unbuggedStart == true){
Controller.unbuggedStart = false;
webview.destroy();
} else{
Controller.unbuggedStart = true;
d = ProgressDialog.show(externalPlayer.this, "Loading...", "Wait a moment...");
webview.loadUrl(j.getCharSequenceExtra("link").toString());
}
Этот код запрещает запуск WebView
дважды.Вы можете видеть, что я уничтожаю один из двух созданных WebView.Теперь, когда я выключил экран, ОС хочет вызвать разрушенный WebView
, что приводит к NullPointerException
.
Я перебил механизмы моего метода onCreate и изменил его.Теперь ориентация указана в манифесте:
android:screenOrientation="landscape"
После этой модификации проблема не была полностью решена.Когда я выключил экран, ОС снова запустила Activity с WebView
, потому что при выключении экрана ориентация изменилась с альбомной на книжную.Я добавил в Манифест следующее:
android:configChanges="keyboardHidden|orientation"
и теперь все работает отлично.