android模式進度對話方塊(ProgressDialog)的呼叫方法 阿新 • • 發佈:2018-12-12 public class MainActivity extends AppCompatActivity { @BindView(R.id.button2) Button button2; @BindView(R.id.button1) TextView button1; private ProgressDialog _progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick({R.id.button1, R.id.button2}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.button1: Toast.makeText (MainActivity.this, "---開始 ", Toast.LENGTH_LONG).show(); _progressDialog = ProgressDialog.show(this, "Loading...", "正在處理..."); //方法1 new Thread(new Runnable() {//啟動執行緒處理其他事情 @Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } runOnUiThread(new Runnable() {//處理介面執行緒 @Override public void run() { if (_progressDialog != null) { _progressDialog.cancel(); } Toast.makeText(MainActivity.this, "---取消 ", Toast.LENGTH_LONG).show(); } }); } }).start(); break; case R.id.button2:// if (_progressDialog != null) {//這裡是無效的,因為它是模式對話方塊// _progressDialog.cancel(); // } break; } } //使用後退鍵退出 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 截獲後退鍵 if (keyCode == KeyEvent.KEYCODE_BACK) { if (_progressDialog != null) { _progressDialog.cancel(); } } return super.onKeyDown(keyCode, event); } }