我尝试使用进度对话框。我的代码:
//加载数据线BT的方法
private void dataload() {
if(D) Log.e(TAG, "++ Data Load Function ++");
// make discoverable
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
//Show Progress Dialog
ProgressDialog dialog = ProgressDialog.show(BluetoothServer.this, "", "Loading, Please wait...", true);
//Establish server connection
mAcceptThread = new AcceptThread();
mAcceptThread.run();
//End progress dialog
dialog.dismiss();
//mAcceptThread.cancel();
}
在主活动中,并且AcceptThread属于同一个类,但是将Thread扩展为新类。问题是,没有进度条出现。
问题出在哪里,我是否必须将AcceptThread放在另一个Activity中?
另一个问题是,如果调用AcceptThread,我会得到一个ANR。我应该是一个问题,它不是在后台运行,而是为什么?
希望你能提供帮助。
答案 0 :(得分:1)
要启动一个线程,请调用start()
方法,而不是run()
,因为run()
将调用当前线程上的方法,而start()
将创建一个新线程并在其中调用run方法。但是查看代码,似乎需要使用AsyncTask。