第一天----Android笔记

笔记参考文章
作者:大头呆
链接:https://juejin.im/post/6844903565576634375
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1.activity的startActivity和context的startActivity区别

1、从Activity中启动新的Activity时可以直接context.startActivity(intent);
2、如果从其他Context中启动Activity则必须给intent设置Flag:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
context.startActivity(intent);

2.如何保证Service不被杀死?

提供进程优先级,降低进程被杀死的概率:
1、启动前台service;
2、提升service优先级:在AndroidManifest.xml文件中对于intent-filter可以通过android:priority = "1000"这个属性设置最高优先级,1000是最高值,如果数字越小则优先级越低,广播同样适用;
3、onDestroy方法里重启service:service +broadcast 方式,就是当service走ondestory的时候,发送一个自定义的广播,当收到广播的时候,重新启动service。

3.简述下Acitivty任务栈和使用方法

任务栈是一种后进先出的结构。位于栈顶的Activity处于焦点状态,当按下back按钮的时候,栈内的Activity会一个一个的出栈,并且调用其onDestory()方法。如果栈内没有Activity,那么系统就会回收这个栈,每个APP默认只有一个栈,以APP的包名来命名。
1、standard:默认模式,每次启动都会创建一个新的activity对象,放到目标任务栈中;
2、singleTop:栈顶存在相同的activity对象则直接使用,不存在就创建新的activity对象放入栈中;
3、singleTask:任务栈中存在相同的activity就清除该activity之上的其他activity对象显示,不存在则会创建一个新的activity放入栈顶;
4、singleIntance:在一个新的任务栈中创建activity,并且该任务栈顶只允许存在一个activity实例,其他调用该activity的组件会直接使用该任务栈顶的activity对象。

4.Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application.

5.主线程(UI线程)

定义:当程序第一次启动时,Android会同时启动一条主线程(Main Thread)
作用:主线程主要负责处理与UI相关的事件

6.Message(消息)

定义:Handler接收和处理的消息对象(Bean对象)
作用:通信时相关信息的存放和传递

7.Handler(处理者)

定义:Message的主要处理者
作用:负责发送Message到消息队列&处理Looper分派过来的Message

8.Looper(循环器)

定义:扮演Message Queue和Handler之间桥梁的角色
作用:消息循环,循环取出Message Queue的Message;消息派发,将取出的Message交付给相应的Handler

9.Handler发送消息有哪几种方式?

1、sendMessage(Message msg)
2、post(Ruunable r)

10.IntentService

1、本质是一种特殊的Service,继承自Service并且本身就是一个抽象类
2、可以用于在后台执行耗时的异步任务,当任务完成后会自动停止
3、拥有较高的优先级,不易被系统杀死(继承自Service的缘故),因此比较适合执行一些高优先级的异步任务

11.AsyncTask

1、一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并主线程中更新UI
2、不适合进行特别耗时的后台任务,耗时任务建议使用线程池

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值