首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

关于Activity的finish步骤

2012-10-06 
关于Activity的finish方法public class HelloActivity extends Activity {ProgressDialog dlg nullHand

关于Activity的finish方法

public class HelloActivity extends Activity {    ProgressDialog dlg = null;    Handler mHandler = new Handler();    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        dlg = new ProgressDialog(this);        dlg.show();                //HelloActivity.this.finish();//---------------1 会立刻调用onDestory();        //java.lang.IllegalArgumentException: View not attached to window manager        mHandler.postDelayed(new Runnable() {            @Override            public void run() {                HelloActivity.this.finish();//-----2                dlg.cancel();                //WindowManager.removeview(HelloActivity, dlg);            }        }, 1000);        setContentView(R.layout.hello_activity);    }    @Override    public void onDestroy(){        super.onDestroy();        Log.d("yzy","activity....finish.....");    }   }

? 如果在1的位置finish.会报异常 view not attach to the windowmanager,这个很好理解。

? 如果在2的位置finish不会有任何问题,而且调用onDestory();

?

疑惑中........................................难道finish是个耗时操作,是个异步操作?

于是我2 的下面加了一行SystemClock.sleep(1000); 可是 第二种情况dlg.cancel()还是不报错?

?

真心不懂了!

热点排行