AsyncTask を使用するのは非常にやり過ぎだと感じることがあります。Android で SwingUtilities.invokeLater のような同様の機能を探しています。1 行のコードを実行したいだけなので、そのために新しいクラスを作成する必要はありません。
質問する
5097 次
3 に答える
24
多分あなたは探している:
Activity.runOnUiThread(Runnable action)
于 2012-07-25T02:52:26.033 に答える
6
Activity.runOnUiThread(Runnable action);
上記のメソッドは、Java の invokeLater とは少し異なります。これは、既に ui スレッドにいるかどうかを確認し、Runnable をすぐに実行するためです。
UI スレッドを使用している場合でも、 Runnable がすぐに呼び出されるのではなく、後で呼び出されるようにする別の方法があります。これを行うには、メイン スレッドにいる間に次のコードを記述します。バックエンド スレッドでこれを呼び出すと、ランナブルがバックエンド スレッドで実行されます。
Handler h = new Handler();
h.post(new Runnable() {
@Override
public void run() {
//your code..
}
);
于 2016-01-14T22:54:40.820 に答える
1
何をするのか正確には覚えていませんinvokeLater()
が、何かを遅らせて実行したい場合は、postDealayed()を使用できます。これは UI スレッドで行われるため、当然、長時間実行されるタスクには適していません。
于 2012-07-25T02:27:52.257 に答える