AsyncTask に次のコードがあります。AsyncTask に実行させたい唯一のことは、ProgressDialog を表示しながら 1000 ミリ秒スリープすることです。
package something.something.Logic;
import android.R;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class DeviceScan extends AsyncTask<String, Void, String> {
ProgressDialog dialog;
Context _context;
public DeviceScan(Context context) {
_context = context;
dialog = new ProgressDialog(_context);
}
protected void onPreExecute() {
dialog = new ProgressDialog(_context);
dialog.setTitle("Please Wait");
dialog.setMessage("Searching for devices..");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
}
@Override
protected String doInBackground(String... params) {
for(int i=0;i<5;i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "";
}
protected void onPostExecute(Integer result) {
/*
* When the background thread is finished, do something here
*/
Toast.makeText(_context, "Done!!", Toast.LENGTH_LONG).show();
dialog.dismiss();
}
}
次に、AsyncTask を次のように呼び出します。
import something.something.Logic.*;
public void onClick(View view){
switch(view.getId()) {
case R.id.button1:
new DeviceScan(getApplicationContext()).execute("");
break;
}
}
しかし、ボタンを押すとアプリがクラッシュするだけで、デバッガーからの情報が見つかりません。誰でも私にヒントを与えることができますか?
前もって感謝します。