0

アクティビティ内にハンドラーを作成し(「FirstActivity」としましょう)、このハンドラーをスレッドに渡します。ここで、 fromスレッドhandleMessage()を呼び出して内部のUIを更新したいと思います。handler.obtainMessage(100).sendToTarget()スレッドは、メッセージをUIに渡すのに20〜30秒かかります。

ここで、私の質問は次のとおりです。 callback(handleMessage())「FirstActivity」が呼び出さ れる前に、別のアクティビティ(「SecondActivity」としましょう)に切り替え

ます。1。「FirstActivity」はガベージコレクションで使用できますか?
2.「FirstActivity」を終了して「SecondActivity」に移動すると、「FirstActivity」のビューが使用可能になりますか、それともnullになりますか?nullにならない場合は、この時点で「FirstActivity」が終了しているため、ビューを更新する場合はNullPointerExceptionをスローする必要があります。

4

2 に答える 2

0
   runOnUiThread(new Runnable() {
        @Override
            public void run() {
                //Your code for UI update goes here.
            }
    }); 

その simple.above コードを使用すると、UI をハンドラーから更新できます。

于 2012-12-31T05:54:46.467 に答える
0

最初のアクティビティを終了すると、もう利用できなくなります。
最初のアクティビティを再度更新する場合は、インテントを最初のアクティビティに渡す必要があります。その後、更新する必要があります..その時はnullポインタ例外が発生しません。この のアクティビティ ライフサイクルを確認する必要があります。

于 2012-12-31T05:55:54.390 に答える