zoukankan      html  css  js  c++  java
  • TabActivity里Actvity的生命周期

    遇到TabActivity里注册和销毁广播接收器应该写到Activity的哪些声明周期阶段里,所以上网查了查,

    发现,

    开始是同样的oncreate--onstart--onresume,

    当你切换到其他activity时你会发现他调用了onpause而不会调用onstop(即使你这时调用锁屏键他也不会onstop),

    当你退出这个tabactivity时他调用了onstop和ondestory。

    这个我们可以知道acitivity的生命周期交给了activitygroup来管理。

    另外今天做项目遇到一个很实用的小tips:

    在TabActivity里做tab切换的时候,如果当前的progressDialog并没有关闭会导致程序的崩溃,

    错误提示是:XXXActivity has leaked window ... that was originally adde here,

    大致的意思是存在窗口句柄泄露,即未能及时销毁某个PhoneWindow.

    其实解决方法很简单,重写onDestory(或者是onPause)方法,将progressDialog给dismiss掉即可。通常我的写法是:

     //当在UI线程中显示ProgressDialog时,
      //此时若想关闭Activity,
      //它会调用自己的onPause函数,
      //所以需要在onPause中关闭ProgressDialog,
      //然后再关闭Activity
      if(progressDialog!=null){
       if(progressDialog.isShowing()){
        progressDialog.dismiss();
       }
      }

    由于上面提到过,当用ActivityGroup来管理的时候,它的生命周期和activity走的不一样,故在此重写的是onPause而不是onDestory.

  • 相关阅读:
    pat 1123 Is It a Complete AVL Tree
    pat 1098 Insertion or Heap Sort
    pat 1147 Heaps
    Python中的Dict底层 | 字典类型删除数据为什么不直接删除?
    MySQL | 重置root密码
    MySQL | 安装后初次使用
    安装MySQL | 报缺失文件的错误
    IDEA | 不使用骨架创建Maven项目
    python | list.sort()和sorted(list)的区别
    python | 字符串不可修改
  • 原文地址:https://www.cnblogs.com/miya2012/p/2755567.html
Copyright © 2011-2022 走看看