以下のコードを実行するonCreateメソッドがあります。簡単に言えば、コードはサーバーからデータを取得し、それをメッセージングプログラム用の画面に表示します。これは一度だけ行いますが、私はそれを(チャットをシミュレートしようとするために)3秒ごとにAsyncTaskを実行したいと思います。私はこれがチャットシステムを持つ方法ではないと確信していますが、私は今のところ(概念の証明として)役立つものを必要とし、後でそれを実装する正しい方法に焦点を当てます。AsyncTaskを繰り返し実行するにはどうすればよいですか?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_box);// sd
final Functions function = new Functions();
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
whatroom = prefs.getString("chat", "null");
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String... args) {
return function.getInbox(args[0]);
}
@Override
protected void onPostExecute(String result) {
TextView inbox = (TextView) findViewById(R.id.inbox);
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar1);
progressBar.setVisibility(View.GONE);
inbox.setText(result);
}
}.execute(whatroom);
}
シンプルなwhile文をasynctaskの周りに置こうとしましたが、強制的に閉じます。
問題は何ですか? –
私は通常、定期的なタスクのためのAsyncTaskを使用しないで、私の答えをチェックアウト[ここ](http://stackoverflow.com/questions/8098806/where-do-i-create-and-use-scheduledthreadpoolexecutor-timertask-or-ハンドラ/ 8102488#8102488)をご覧ください。 – yorkw
ヨーク、あなたの答えは完璧だった。それは私のために働いて、私がそれが必要なすべてをやった。 – EGHDK