黑马程序员技术交流社区

标题: 泄密:黑马Android内部压轴技术面连载现世(二) [打印本页]

作者: Android_Robot    时间: 2016-6-13 17:27
标题: 泄密:黑马Android内部压轴技术面连载现世(二)
泄密:黑马Android内部压轴技术面连载现世(二)

涨薪机密——潮流新技术、新框架资源以后不定期更新,
5. 如何将一个Activity设置成窗口的样式。
        可以自定义一个activity的样式
        android:theme="@android:style/Theme.Dialog"
6. 你后台的Activity被系统回收怎么办?
       如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
        除了在栈顶的activity,其他的activity都有可能在内存不足的时候被系统回收,一个activity越处于栈底,被回收的可能性越大.
            protected void onSaveInstanceState(Bundle outState) {
                   super.onSaveInstanceState(outState);
                   outState.putLong("id",1234567890);
            }
           public void onCreate(Bundle savedInstanceState) {
              //判断savedInstanceState是不是空.
              //如果不为空就取出来
              super.onCreate(savedInstanceState);
           }
         备用方案:切换到后台的时候就先把数据保存,在切换到前台的时候重新获取数据恢复界面

7. 如何退出Activity?如何安全退出已调用多个Activity的Application?
        退出activity 直接调用 finish () 方法 . //用户点击back键 就是退出一个activity
        退出activity 会执行 onDestroy()方法 .
       1、递归退出
             在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。
       2、记录打开的Activity:
             每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
            List<Activity>lists ; 在application 全集的环境里面
            lists =new ArrayList<Activity>();
            lists.add(activity);
           for(Activity activity: lists){
                activity.finish();
            }
       3、发送特定广播:
            在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
            //给某个activity 注册接受接受广播的意图     
             registerReceiver(receiver,filter)
            //如果过接受到的是 关闭activity的广播  就调用finish()方法把当前的activity finish()掉
           上面是网上的一些做法.
            其实 可以通过 intent的flag 来实现.. intent.setFlag(FLAG_ACTIVITY_CLEAR_TOP)激活一个新的activity,然后在新的activity的oncreate方法里面 finish掉.

8. service是否在main thread中执行,service里面是否能执行耗时的操作?
            默认情况,如果没有显示的指定service所运行的进程, Service和activity是运行在当前app所在进程的main thread(UI主线程)里面  
service里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )
           在子线程中执行 new Thread(){}.start();
             Thread.currentThread().getName();
             特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,让service在另外的进程中执行.

9. 两个Activity之间怎么传递数据?
         基本数据类型可以通过 Intent 传递数据
              extras.putDouble(key, value)
              intent.putExtra(name,value)  
              // 通过intentputExtra 方法 基本数据类型 都传递
             intent.getStringExtra("key","value");
             intent.getBooleanExtra("key","value")
             Bundlebundle = new  Bundle();
             bumdle.putShort(key,value);
             intent.putExtras(bumdle);
             intent.putExtras(bundle)
            Application 全局里面存放 对象 ,自己去实现自己的application的这个类,基础系统的application , 每个activity都可以取到。
           让对象实现 implements Serializable 接口把对象存放到文件上.  
           让类实现Serializable 接口,然后可以通过 ObjectOutputStream        //对象输出流  
           Filefile = new File("c:\1.obj");
           FileOutputStreamfos  = new FileOutputStream(file);
           ObjectOutputStreamoos = new ObjectOutputStream(fos);
      
           Studentstu = new Student();
           oos.writeObject(stu);
   
           //从文件中把对象读出来  
          ObjectInputStreamois = new ObjectInputStream(arg0);
           Student stu1 = (Student) ois.readObject();
         文件/网络
         intent.setData(Uri)
         Uri.fromFile();  //大图片的传递

10. 怎么在启动一个Activity时就启动一个service?
         在activity的onCreate()方法里面startService();



其他精华资源推荐:

【强荐!】2016年最新Android学习路线图——按此路线图学习月薪过万{ 火速收入}
部落与荣耀:拥有一个足以让你自豪的薪资——Android76—83期连续霸(8)气(期)平均薪资超11K!
[持续更新]2016最新Android视频教程+源码+技巧/经验+软件+面试
Android是选择自学还是选择培训?

作者: 皮卡丘2016    时间: 2016-6-14 22:41
收藏了,马上学到了
作者: SQQ    时间: 2016-6-15 16:41

作者: chengxiankun    时间: 2016-6-15 22:06
有木有关于javaEE的学习路线,或者技术分享
作者: YC1992    时间: 2016-6-15 22:17
楼主分享的很给力
作者: sjw12025    时间: 2016-6-15 22:41
不错不错,对我来说很好
作者: 守徒徒    时间: 2016-6-16 08:26
收藏了!!
作者: 淹忆    时间: 2016-6-16 10:32
赞.................
作者: shengdong521    时间: 2016-6-16 16:21
加油 ,一定要过去
作者: lsp0523    时间: 2016-6-19 00:15
内部资料啊,抓紧收藏
作者: James_01    时间: 2016-6-21 07:44
做行业精英,冲刺Android领域高级工程师,这一直都是黑马程序员对学员的培养目标。
作者: 115241473    时间: 2016-6-21 22:08
额,看不懂了。
作者: 戎马生涯    时间: 2016-6-22 08:36
赞~~~顶贴~
作者: 流离岁月    时间: 2016-6-22 10:57
分享的不错
作者: TommingYu    时间: 2016-6-22 23:53
先收藏了  指不定就用着了呢
作者: S..    时间: 2016-6-23 08:46
讲解的很详细
作者: jiazhuoxiao    时间: 2016-6-23 20:03
继续收藏 谢谢楼主分享
作者: 偶尔等了    时间: 2016-6-23 22:57
学姿势回帖是一种美德
作者: odada    时间: 2016-6-24 21:45
我得努力学习 java了...
作者: 要是真的怎么办    时间: 2016-6-24 23:29
收藏了收藏了
作者: 小教授    时间: 2016-6-25 20:42
正在学习java中
作者: m18581215520    时间: 2016-6-25 20:54
大神,学习了
作者: kksoje    时间: 2016-6-25 22:25
不是很懂啊,技术
作者: guyue    时间: 2016-6-26 11:43
大神带我飞
作者: fanhongwei1105    时间: 2016-6-26 19:38
有木有关于javaEE的学习路线,或者技术分享
作者: 失控的柠檬    时间: 2016-6-26 21:35
赞一个。。。
作者: 王二小敲代码    时间: 2016-6-28 00:08
每日一签,,,
作者: 墨尔    时间: 2016-6-28 21:08
收藏了收藏了
作者: wzg682735    时间: 2016-6-29 06:54
顶一下,不错哟
作者: 15242694137    时间: 2016-7-3 06:59
有用    学习中
作者: lichmeng    时间: 2016-7-3 10:33
强势顶贴.顺便占位
作者: 15242694137    时间: 2016-7-4 11:30
感觉很666
作者: 胡哓甫    时间: 2016-7-4 21:24
很不错,对我很有用的
作者: cb747706401    时间: 2016-7-5 23:12
赞````````````
作者: Jason王    时间: 2016-7-6 12:10
厉害,顶起来
作者: qq1114211383    时间: 2016-7-6 12:14
收藏了,慢慢看。。。
作者: nihao_javaee    时间: 2016-7-6 12:42
收藏了,看看
作者: 你的昵称    时间: 2016-7-6 13:07
哈哈哈!早知道了!
作者: 胡哓甫    时间: 2016-7-6 19:23
我得努力学习 java了.
作者: caiweitao    时间: 2016-7-6 23:18
楼主分享的很给力
作者: 山水云梦    时间: 2016-7-6 23:58
收藏了 谢谢分享{:2_38:}{:2_38:}{:2_38:}{:2_38:}{:2_38:}
作者: 裤头多佛祖    时间: 2016-7-7 00:06
不错不错
作者: 墨尔    时间: 2016-7-7 21:53
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 笑个五毛买糖吃    时间: 2016-7-8 16:24
不明嚼栗......
作者: sanmaovszhe    时间: 2016-7-8 23:07
努力奋斗的一天又开始了!
作者: keting555    时间: 2016-7-9 00:34
说的非常好~~~~~~~~~~~~~~~~
作者: 张作辉    时间: 2016-7-9 23:28
很好很爱好
作者: 往死里敲代码    时间: 2016-7-9 23:30
内部资料啊,抓紧收藏
作者: 13182002757    时间: 2016-7-11 20:23
谢谢楼主分享
作者: 一叶知秋来    时间: 2016-7-12 19:47
专为顶贴来!!!!顶贴!!
作者: object_dk    时间: 2016-7-12 22:36
收藏留待后用~~~感谢楼主
作者: 富林    时间: 2016-7-13 12:22
可以~~!!!
作者: wj3725    时间: 2016-7-13 23:46
楼主好人 谢谢分享
作者: cliffawesome    时间: 2016-7-14 00:08
简直好得不能再好
作者: ylca    时间: 2016-7-14 19:05
66666666666
作者: wz529377283    时间: 2016-7-14 21:54
好东西大家收藏,不然就找不到了
作者: 一个很瘦的胖子    时间: 2016-7-15 00:19

内部资料啊,抓紧收藏
作者: zhangjiesss    时间: 2016-7-16 23:30
谢谢楼主,嘻嘻,还是有点看不懂,加油
作者: 富林    时间: 2016-7-16 23:49
66666666666
作者: 勿忘`初心    时间: 2016-7-17 12:21

作者: 富林    时间: 2016-7-18 21:19
6666666666666666
作者: 樱释空    时间: 2016-7-25 22:26
楼主 6666
作者: Frank_Ms1ZR    时间: 2016-7-25 22:30
不错不错,收藏了
作者: 18072727834    时间: 2016-7-25 23:05
非常棒 果断收藏
作者: miqideliwu    时间: 2016-7-27 00:12
感谢分享
作者: houzhiming    时间: 2016-7-28 18:04
顶一个,帅哦
作者: Kingdragon    时间: 2016-7-28 23:35
精华 Q@! 收藏
作者: 487941230    时间: 2016-7-31 22:20
666666666666666666666666
作者: 修身丶丶丶    时间: 2016-8-1 12:09
每天保持好心情
作者: Solarln    时间: 2016-8-2 21:29
真是相当给力啊
作者: fzc123    时间: 2016-8-3 00:09
赞赞赞赞赞赞赞赞赞赞赞赞赞
作者: 877758007@qq.co    时间: 2016-8-3 07:38
果断收藏
顶顶顶顶
作者: xpf0121    时间: 2016-8-3 22:08
谢谢分享{:3_53:}
作者: ustcerlzy    时间: 2016-8-4 09:13
Android里不同activity之间通过Intent传递数据 感觉可以类比到Javaweb中不同的servlet之间通过session共享数据。
作者: dongfangletu    时间: 2016-8-29 21:31
楼主分享的很给力
作者: 695212308    时间: 2016-8-29 22:07

作者: hxs    时间: 2016-11-15 22:24
不错不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2