1. 程式人生 > >Android子線程進度條不顯示的問題

Android子線程進度條不顯示的問題

子線程進度條不顯示的問題

不顯示進度條的代碼邏輯:

首先,新建了一個類,此類有一個內部類,內部類繼承Therad

類中有一個普通方法,普通方法執行的時候調用此方法中的內部類。

這時候,展示進度條。

進度條展示在普通方法中,那麽實際展示的時間是在內部類執行完成後才展示,這樣當然是不行的··

進度條在子線程中展示則報錯,百度的方法試過都不行。怎麽辦呢。

解決方案:

在類中建立一個普通的方法,

方法裏直接new出子線程然後start

子線程中通過handler消息機制將耗時操作的數據結果返回給handler

handler接收到消息後作出對應的處理。

handler是可以直接跳轉activity的。這點比較重要。

部分代碼展示:

handler代碼:

Handler handler = new Handler(){

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

if(msg.what==0){

pb.dismiss();

String data = (String) msg.obj;

if(data.equals("0")){

Toast.makeText(context,"驗證失敗,請重新登陸",Toast.

LENGTH_LONG).show();

SqliteDao sqliteDao = new SqliteDao(context);

sqliteDao.deletebbusinessdocumentlogin();

}else {

Toast.makeText(context, "驗證成功", Toast.LENGTH_LONG).show();

Intent intent = new Intent(context, ordergoods.class

);

context.startActivity(intent);

}

}

}

};

子線程返回結果集發送給handler的代碼:

handler.obtainMessage(0,returndata).sendToTarget();

Android子線程進度條不顯示的問題