首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    重识Activity——生命周期详解

    1. 单个Activity生命周期 *  显示状态——onCreate()、onStart()、onResume() * 隐藏状态——onPause():部分可见、onStop():隐藏,黑屏状态 * 销毁——onDestroy() 2. 多个Activity生命周期交互 * 第一个Activity启动——依次调用onCreate()、onStart()、onResume () * 第二个Activity启动——第一个activity调用onPause (),第二个activity调用onCreate ()、onStart()、onResume(),第一个Activity调用onStop() * 再次返回第一个activity—— 第二个Activity调用onPause ()、第一个Activity调用onRestart():不用再onCreate()、onStart()、onResume ();此时第二个Activity调用onStop()、onDestroy(),此时第二个Activity生命周期结束 3. Activity生命周期交互设计思想 * 例子:当处在音乐播放页面时,此时来电,音乐activity调用onPause (),重写该方法暂停音乐,否则会影响通话; * 另一方面,音乐activity调用onPause ()后,紧接着调用onStop(),电话结束后,再次回到音乐播放页面就是黑屏了 4. 横竖屏切换 * 切换时相当于创建了一个新的Activity,原有的activity生命周期结束 * 切换时,可以通过onSaveInstanceState 方法中Bundle对象保存切换前activity信息,然后在onCreate()的Bundle对象获取 5. Activity生命周期的应用 * onPause ()——添加暂停该页面的其他操作 * onResume ()——当返回页面时,添加恢复原有页面的操作 * onDestroy()——结束该页面时,释放该页面其他操作的资源 6. 启动Activity * 直接启动 *  * 只通过Intent——Intent intent=new Intent(one.this, two.class); * 辅以Component——Intent intent=new Intent();ComponentName component=new ComponentName(one.this, two.class);  intent.setComponent(component );startActivity(intent); * 匿名启动 *  * 在AndroidManifest中对应的activity添加<intent-filter>——》<action android :name=“1”>——》intent.setAction("1");——》startActivity(intent); * 启动系统常见Activity *  * 启动浏览器——intent.setAction(Intent.ACTION_VIEW);Uri url=Uri.parse("http://www.imooc.com"); intent.setData(url);startActivity(intent); * 启动相册——intent.setAction(Intent.ACTION_GET_CONTENT);intent.setType(“image/*”);startActivity(intent); * 发送短信——intent.setAction(Intent.ACTION_SEND);intent.setType(“text/plain”);intent.putExtra(Intent.EXTRA_TEXT,"hello !");startActivity(intent); * 打开电话——intent.setAction(Intent.ACTION_VIEW );Uri url=Uri.parse("tel:123456"); intent.setData(url); startActivity(intent); * 其它页面可以通过Android文档查看Intent

    03

    提升E4A程序的体验(秒启动)

    在Adnroid5.0开始,Google引入了一个新的概念,秒启动。简单来说就是在APP启动之前创建一个纯白或纯黑的activity,减少用户从桌面点击应用图标到看见应用界面的时间,这一过程就是秒启动。       当然,如果是用Java开发,可以写一个splash.xml创建一个Activity,自定义内容,也就是 酷安、QQ、微信、淘宝之类软件的秒启动方案。       但是,仔细观察E4A软件,,你会发现,明显在点击APP之后有个等待时间,之后才会显示你的窗口,这有种输在起跑线上的感觉。。       目前我对原生Android开发还停留在入门阶段,,所以写APP还是依赖的E4A,经过我的研究,发现在Adnroid5.0系统以上,APP在启动时无论开发者有没有定义秒启动方案,都会创建一个白色或黑色的界面(视你主题而定),达到秒启的效果,那么,,E4A程序为毛还是没有呢。。       经过一段时间的蜜汁研究,E4A程序启动时的大致流程: {桌面点击>com.e4a.runtime.android.StartActivity>com.e4a.runtime.android.mainActivity} 参照E4A的核心jar,发现com.e4a.runtime.android.StartActivity只有一个用处,展示调试版APP的启动图,,那么,为什么没有白色Activity,因为E4A程序是有秒启动图的,只不过付费版用户是透明的(当然,我宁愿透明也不要E4A官方的启动图),那么,解决方法就出来了。 1.首先,自定义AndroidMainfest.xml

    01

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券