Я отредактировал свой код в соответствии с уважаемым Mayank'answer, но он не отображает сообщение, которое отправляется как входное значение в методе displayMsg() до того, как метод начнется. Я должен сказать, что метод MethodTest() запускается с помощью nfc и в методе onNewIntent (Intent умысел)Прогресс Диалог не отображается на экране
@Override
protected void onNewIntent(Intent intent) {
MethodTest();
..............
}
public void MethodTest() {
DisplayMsg("method 1 is running");
Method1();
DisplayMsg("method 2 is running");
Method2();
DisplayMsg("method 3 is running");
Method3();
}
private int DisplayMsg(String msg) {
totalMsg += msg;
DisplayMsgClass dc = new DisplayMsgClass();
dc.doInBackground(totalMsg);
}
private class DisplayMsgClass extends AsyncTask<String, Integer, String> {
@Override
protected void onPreExecute() {
textView.setText("Hello !!!");
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
progressBar.setVisibility(View.VISIBLE);
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... Messages) {
return Messages[0];
}
@Override
protected void onPostExecute(String result) {
progressBar.setVisibility(View.INVISIBLE);
textView.setText(result);
}
}
в моем макете:
<LinearLayout>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:id="@+id/progressBar1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textv1"
android:hint="AppletPass"
android:gravity="center"/>
</LinearLayout>
Что вы подразумеваете под 'int value = obj.doInBackground (msg);'? См. [AsyncTask] (https://developer.android.com/reference/android/os/AsyncTask.html) для правильной реализации AsyncTask. –
Это не важно. Я поставил его для проверки выполнения DisplayMsg и создания времени для может видеть диалог – Fatemeh
Хорошо, используйте 'obj.execute (" "); вместо' int value = obj.doInBackground (msg); 'и проверьте' ProgressDialog' показывает или нет –