Android进度对话问题

时间:2011-07-27 08:47:06

标签: android

我尝试使用进度对话框。我的代码:

//加载数据线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。我应该是一个问题,它不是在后台运行,而是为什么?

希望你能提供帮助。

1 个答案:

答案 0 :(得分:1)

要启动一个线程,请调用start()方法,而不是run(),因为run()将调用当前线程上的方法,而start()将创建一个新线程并在其中调用run方法。但是查看代码,似乎需要使用AsyncTask