0

ViewSwitcherを使用してロード画面を表示してからメインビューを表示するアクティビティがあります。ロード画面は正常に表示されますが、メインビューは表示されません。アプリ起動後は画面上で何も触れられないのですが見えないのでそこにあります。ホーム画面(システムバーはまだアクティブです)に移動してから、アプリを再起動して、アプリを前面に表示する(表示する)必要があります。

これは、インストール後の最初のオープン時にのみ発生します。可視性を手動で設定し、bringToFront()を使用して前面に表示しようとしましたが、アプリアイコンをもう一度タップするまで表示されません。

これは私のコードです:私はAsyncTaskのロードを開始し、onPreExecuteでこれを行います:

viewSwitcher = new ViewSwitcher(MainActivity.this);  
viewSwitcher.addView(ViewSwitcher.inflate(MainActivity.this, R.layout.splashscreen, null));  
setContentView(viewSwitcher);
mv = new MainView(MainActivity.this);

次に、doInBackgroundですべての重い読み込みを行い、onPostExecuteで次のようにビューを切り替えます。

viewSwitcher.addView(mv);
viewSwitcher.showNext();
//I have tried all this:
mv.setVisibility(View.VISIBLE);
viewSwitcher.setVisibility(View.VISIBLE);
viewSwitcher.bringToFront();
mv.bringToFront();

また、コンテンツスイッチャーを使用せずにコンテンツビューを正常に設定しようとしましたが、役に立ちませんでした。これは、非同期タスクの後でUIが無効にならないようなものです。なぜこれがインストール後に1回だけ発生し、1回おきに正常に動作するのかわかりません。

4

1 に答える 1

0

わかりました。問題は、進行状況を更新するために asyncTask をロードおよびアクセスする際のエラーでした。そのエラーは処理されたため、読み込みは続行されましたが、これにより何らかの理由でビューが非表示になりました。myasyncTask.setProgress() を runOnUiThread と viola に配置すると、ビューが読み込まれ、期待どおりに表示されました。

于 2013-02-13T00:36:58.857 に答える