-8

この質問が何度も聞かれるのを見てきましたが、それを行う方法はありません。メイン UI スレッドにコードのさまざまなセクション (10 秒以上かかることもあります) があり、ユーザーに進行状況を表示したいと考えています。続行する前にコードを実行する必要があるメインスレッドをフリーズしながら、コードのさまざまな部分をすべて別のスレッドに移動しようとするためにすべてのコードをやり直すことはありません (既に非常に複雑なアプリです)。Thread/Handler/AsyncTask は提案しないでください彼らがしないように。

私が試したことの 1 つは、使用しているカスタム ビューの onDraw から Canvas ポインターを格納し、長いコードの実行中に何かを描画することですが、ビューはコードの実行が終了した後にのみ更新されます。コードの実行中にビューを強制的に再描画する方法はありますか?

メッセージ/進行状況をユーザーに表示する別の方法は、上の別のアクティビティを開くことです。フルスクリーンではないため、ホームボタンを長押しして最近のアプリのポップアップを押したときと同じように、アプリの一部の背後を見ることができますが表示されます。これを行うにはどうすればよいですか?また、2 つのアクティビティ間で通信するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

1

申し訳ありませんが、それはできません。

Main Thread は UI の操作にのみ使用され、長時間の操作には使用されません... UI Threadprogress一部であるため、これもフリーズします。Google ガイドラインをご覧ください。本当にそうしたい場合は、 をご覧くださいProgressDialog

于 2012-11-06T23:24:17.467 に答える