public abstract class BaseActivity extends AppCompatActivity {
protected ProgressDialog mProgressDialog = null;
protected abstract Context getContext();
/**
* 프로그래스를 보여준다.
*/
public void showProgressDialog() {
if (mProgressDialog == null) {
if (Build.VERSION_CODES.KITKAT < Build.VERSION.SDK_INT) {// R.style.ProgressDialogStyle은 커스텀으로 정의한 스타일임
mProgressDialog = new ProgressDialog(getNowContext(), R.style.ProgressDialogStyle);} else {
mProgressDialog = new ProgressDialog(getNowContext());
}
mProgressDialog.setMessage(getString(R.string.progress_message));
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(false);
}
mProgressDialog.show();
}
/**
* 프로그래스를 숨긴다.
*/
public void hideProgressDialog() {
if (mProgressDialog != null && mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
}
}}
R.style.ProgressDialogStyle
<style name="ProgressDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="android:layout_centerVertical">true</item>
<item name="android:layout_centerHorizontal">true</item>
<item name="colorAccent">@color/colorPrimary</item>
</style>
사용 할 때
private class DownloadTask extends AsyncTask{
@Override
protected void onPreExecute() {
showProgressDialog(); // 작업 시작
//작업 준비 코드 작성
super.onPreExecute();
}
@Override
protected Object doInBackground(Object[] params) {
//작업 중
return null;
}
@Override
protected void onPostExecute(Object o) {
//작업 끝 코드 작성
hideProgressDialog(); // 작업 끝
super.onPostExecute(o);
}
}
이런 느낌으로 사용하시면 됩니다.
'Android' 카테고리의 다른 글
안드로이드 File 복사 (2) | 2017.05.23 |
---|---|
안드로이드 O priview 폰트 혹은 글꼴 (0) | 2017.04.25 |
안드로이드 TabLayout ViewPager (4) | 2017.03.09 |
안드로이드 툴바 메뉴 보이지 않도록 설정 (0) | 2017.03.06 |
안드로이드 WheelView or StringPicker (0) | 2017.03.03 |