У меня есть функция, которая может варьироваться в зависимости от времени, необходимого для завершения. Я хотел бы отобразить диалоговое окно прогресса, пока эта функция работает.
Я знаю, что вы можете использовать «Нить» для достижения этой цели. Может ли кто-нибудь указать мне правильное направление для этого?
EDIT:
Вот код, который я использую:
private class LongOperation extends AsyncTask<String, Void, String>
{
ProgressDialog dialog;
public Context context;
@Override
protected String doInBackground(String... params) {
if (!dialog.isShowing())
dialog.show(); // Just in case
return null;
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onPostExecute(java.lang.Object)
*/
@Override
protected void onPostExecute(String result) {
dialog.dismiss();
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onPreExecute()
*/
@Override
protected void onPreExecute()
{
dialog = ProgressDialog.show(context, "Working", "Getting amenity information", true);
}
/* (non-Javadoc)
* @see android.os.AsyncTask#onProgressUpdate(Progress[])
*/
@Override
protected void onProgressUpdate(Void... values) {
// Things to be done while execution of long running operation is in progress. For example updating ProgessDialog
}
}
это класс Asnyc. Пользователь выбирает опцию из меню, и затем она выполняется:
longOperation.execute(""); // Start Async Task
GetAmenities(Trails.UserLocation); // Long function operation