私は多くの計算を必要とする関数を持っているので、スレッド内でその関数を呼び出そうとします。これは私がそれを行う方法です。スレッドとprogressDialog android
submit.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
if(!(fromAdress.getText().toString().length() > 0) || !(toAdress.getText().toString().length() > 0)) {
Toast.makeText(this, "ERROR IN INPUT", Toast.LENGTH_LONG).show();
}
else {
if(connected) {
final ProgressDialog dialog = ProgressDialog.show(this, "Calculating",
"Please wait...", true);
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
dialog.dismiss();
}
};
Thread checkUpdate = new Thread() {
public void run() {
measureDistanceAndTime(fromAdress.getText().toString(), toAdress.getText().toString());
handler.sendEmptyMessage(0);
}
};
checkUpdate.start();
}
else
Toast.makeText(this, "No network!", Toast.LENGTH_LONG).show();
}
私がアプリケーションを開くと、それはprogressdialogを示しているが、4秒などの後、それが応答を停止します。私はスレッドとprogressdialogのコードを削除するときに、この問題を解決することはできません。
これを行う方法はありませんか?
間違いはありますか? 「アプリケーションが応答していません」というメッセージが表示されますか?それを実行させると戻ってくるのか、それとも無期限にハングアップするのですか? –