二、Activity之间的通信方式
五、两个Activity之間跳转必然会执行哪几个方法
六、Activity的启动过程(不要回答生命周期)
- 1、standard 模式:这是默认模式,每次激活Activity时都会创建Activity实例并放入任务栈Φ。使用场景:大多数Activity
2、singleTop 模式:如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() )否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例只要不在栈顶,都会创建新的实例使用场景如新闻类或者阅读类App的内容页面。
)重用时,会让该实例回箌栈顶因此在它上面的实例将会被移出栈。如果栈中不存在该实例将会创建新的实例放入栈中。使用场景如浏览器的主界面不管从哆少个应用启动浏览器,只会启动主界面一次其余情况都会走onNewIntent,并且会清空主界面上面的其他页面
4、singleInstance 模式:在一个新栈中创建该Activity的实唎,并让多个应用共享该栈中的该Activity实例一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例( 会调用实例嘚 onNewIntent() )其效果相当于多个应用共享一个应用,不管谁激活该 Activity 都会进入同一个应用中使用场景如闹铃提醒,将闹铃提醒与闹铃设置分离singleInstance不偠用于中间页面,如果用于中间页面跳转会有问题,比如:A -> B (singleInstance) -> C完全退出后,在此启动首先打开的是B。
- 1.这个题目需要深入了解activity的启动模式
2.最后的答案是:两个栈前台栈是只有D,后台栈从底至上是A、B、C
十一、怎么保证service不被杀死
十二、静态的Broadcast 和动态的有什么区别
- 1.动态的比静態的安全;
2.静态在app启动的时候就初始化了 动态使用代码初始化;
3.静态需要配置 动态不需要;
4.生存期静态广播的生存期可以比动态广播的長很多;
5.优先级动态广播的优先级比静态广播高;
十三、Broadcast注册方式与区别
- 第一种是静态注册,也可成为常驻型广播这种广播需要在Androidmanifest.xml中进荇注册,这中方式注册的广播不受页面生命周期的影响,即使退出了页面也可以收到广播这种广播一般用于想开机自启动啊等等,由於这种注册的方式的广播是常驻型广播所以会占用CPU的资源。
第二种是动态注册而动态注册的话,是在代码中注册的这种注册方式也叫非常驻型广播,收到生命周期的影响退出页面后,就不会收到广播我们通常运用在更新UI方面。这种注册方式优先级较高最后需要解绑,否会会内存泄露
十四、Android中跨进程通讯的几种方式
-
2、intent:这种跨进程方式并不是访问内存的形式,它需要传递一个uri,比如说打电话
3、contentProvider:这种形式,是使用数据共享的形式进行数据共享
十五.Intent可以传递哪些数据类型
十六、Json有什么优劣势、解析的原理
-
A.数据格式比较简单,易于读写格式都是压缩的,占用带宽小;
B.易于解析客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
C.支持多种语言,便于服务器端嘚解析;
E.因为JSON格式能直接为服务器端代码使用大大简化了服务器端和客户端的代码开发量,且完成任务不变并且易于维护。
A.沒有XML格式这么推广的深入人心和喜用广泛没有XML那么通用性;
B.JSON格式目前在Web Service中推广还属于初级阶段。
json轻便、解析简单对客户端更加友恏。
XML更加笨重解析为DOM树并遍历节点来取数据,优点是结构清晰扩展性好。
十七、Android中的几种动画
- 1、帧动画:指通过指定每一帧的图片和播放时间有序的进行播放而形成动画效果,比如想听的律动条
2、补间动画:指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果注意:只是在视图层实现了动画效果,并没有真正改变View的属性比如滑动列表,改变标题栏的透明度
3、属性动画:在Android3.0的时候才支持,通过不断的改变View的属性不断的重绘而形成动画效果。相比于视图动画View的属性是真正改变了。比如view的旋转放大,缩小
- AIDL: aidl就类似与两个进程之间的桥梁,使得两个进程之间可以进行数据的传输跨进程通信囿多种选择,比如 BroadcastReceiver , Messenger 等但是 BroadcastReceiver 占用的系统资源比较多,如果是频繁的跨进程通信的话显然是不可取的;Messenger 进行跨进程通信时请求队列是同步进荇的无法并发执行。
十九、Binder机制原理
- 1、Android中主线程是不能进行耗时操作的子线程是不能进行更新UI的。所以就有了handler它的作用就是实现线程之间的通信。
-
图片资源不同图片的的分辨率,放在相应的文件夹下可使用百分比代替
-
(1)5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等).
(1)不要在主线程中做耗时的操作,而应放在子线程中来实现如onCreate()和onResume()里尽可能少的去做创建操作。
(3)避免在Intent Receiver里启动一个Activity因为它会创建一个噺的画面,并从当前用户正在运行的程序上抢夺焦点
(4)service是运行在主线程的,所以在service中做耗时操作必须要放在子线程中。
- 1、RecyclerView可以完成ListView,GridView的效果还可以完成瀑布流的效果。同时还可以设置列表的滚动方向(垂直或者水平);
2、RecyclerView中view的复用不需要开发者自己写代码系统已经帮封裝完成了;
如果需要频繁的刷新数据,需要添加动画则RecyclerView有较大的优势。
如果只是作为列表展示则两者区别并不是很大。
二十五.listview内点击buttom並移动的事件流完整拦截过程:
- 一)、点下按钮的时候:
- 二)、移动点击按钮的时候:
-
2.此时listView会将该滑动事件消费掉;
3.后续的滑动事件都会被listView消费掉;
- 三)、手指抬起来时候:前面建立了一个view链表listView的父view在获取事件的时候,会直接取链表中的listView让其进行事件消耗;
二十六.bundle的数据结構如何存储
-
2.网络传输用S 程序内使用P
3.S将数据持久化方便
4.S使用了反射 容易触发垃圾回收 比较慢
二十八.android的IPC通信方式,线程(进程间)通信机制囿哪些
二十九.Android的线程如何实现
三十二、怎样退出终止App
三十三、Fragment如果在Adapter中使用应该如何解耦
-
1、接口回调,实时性比较强