-1
我知道這是重複的,但相信我我已經嘗試了許多可用的代碼,仍然沒有得到這個工作。在android中顯示對話框
下面是我的代碼
public class LookIn extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
//Initializing properties
}
public void onClick(View v) {
// Event for button click
callHelper();
}
private void callHelper()
{
List result=null;
try {
String jsonResponse=new CallmeGetHelperAsyncTask(this).execute(params).get();
result= RestUtil.getUserList(jsonResponse);
}
catch (InterruptedException e) {
Log.e("Callme", Log.getStackTraceString(e));
} catch (ExecutionException e) {
Log.e("Callme", Log.getStackTraceString(e));
}
catch(JSONException x)
{
Log.e("Callme",Log.getStackTraceString(x));
}
}
}
下面是我的AsyncTask類
public class CallmeGetHelperAsyncTask extends AsyncTask<String,Void,String > {
private AppCompatActivity activity=null;
private ProgressDialog dialog=null;
public CallmeGetHelperAsyncTask(){}
public CallmeGetHelperAsyncTask(AppCompatActivity activity){
this.activity=activity;
//this.dialog= dialog;
}
@Override
protected void onPreExecute() {
if(this.dialog!=null)
{
Log.v("Callme", "Starting Dialog");
dialog = ProgressDialog.show(this.activity, "title", "message");
// this.dialog.setMessage("Looking for Helpers");
this.dialog.show();
}
else
{
dialog = ProgressDialog.show(this.activity, "title", "message");
}
}
@Override
protected void onPostExecute(String s) {
if(this.dialog!=null)
{
Log.v("Callme","Closing Dialog");
this.dialog.dismiss();
}
else
{
Log.v("Callme","Dialog is not initiated in CallmeGethelperAsyncTask");
}
}
@Override
protected String doInBackground(String... params) {
//call to webservice
}
}
我不能夠得到什麼是與上面的代碼的問題。
我發現了一個更奇怪的東西(奇怪可能只是因爲我是新的)。我嘗試從我的ActivityClass
以及我的AsyncTask
中打印Thread.currentThread.getId()
,並且出乎意料地打印出「1」。
如果我沒有錯,那麼說,這兩個代碼是從同一個線程運行。
關於此內容我已閱讀Running multiple AsyncTasks at the same time -- not possible?其中說,早些時候的線程池只包含1個線程,但我使用Android 5.1應該包含5個線程。所以我又對此感到困惑。
請花點時間來解釋。謝謝
應用上面的變化,但沒有變化:( –