Android Window 9问9答
2016-02-11 15:20
561 查看
1.简述一下window是什么?在android体系里 扮演什么角色?
答:window就是一个抽象类,他的实现类是phoneWindow。我们一般通过windowManager 来访问window。就是windowmanager 和windowmanagerservice的交互。
此外 android中 你所有能看到的视图,activity,dialog,toast等 都是附加在window上的。window就是view的直接管理者。
2.如何使用windowmanager添加一个view?
答:
View Code
9.toast的window创建过程?
答:这属于系统级别的window创建了,和前面的两种window创建过程稍微不一样。其实主要就是notificationmanagerservice和toast本身之间两者的相互调用而已。
就是简单的ipc过程。前面binder的教程有讲到,如何利用binder来进行双向通信。toast的源码 就是利用了binder的双向通信来完成toast的功能。
源码就不分析了,ipc的东西讲过太多了,有兴趣的可以自己看。
答:window就是一个抽象类,他的实现类是phoneWindow。我们一般通过windowManager 来访问window。就是windowmanager 和windowmanagerservice的交互。
此外 android中 你所有能看到的视图,activity,dialog,toast等 都是附加在window上的。window就是view的直接管理者。
2.如何使用windowmanager添加一个view?
答:
Dialog dialog=new Dialog(MainActivity.this.getApplicationContext()); dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR); TextView textView=new TextView(MainActivity.this); textView.setText("this is dialog not use activity this"); dialog.setContentView(textView); dialog.show();
View Code
9.toast的window创建过程?
答:这属于系统级别的window创建了,和前面的两种window创建过程稍微不一样。其实主要就是notificationmanagerservice和toast本身之间两者的相互调用而已。
就是简单的ipc过程。前面binder的教程有讲到,如何利用binder来进行双向通信。toast的源码 就是利用了binder的双向通信来完成toast的功能。
源码就不分析了,ipc的东西讲过太多了,有兴趣的可以自己看。
相关文章推荐
- Android之-异步消息处理机制
- Android保证首次获取到的location对象不为空的解决方案
- Android之图片加载库Picasso源码分析
- Android之Context详解
- Android应用安全开发之防范无意识的数据泄露
- android——error opening trace file: No such file or directory (2)
- 【Android】7.6 FrameLayout(帧布局)
- 【Android】7.5 RelativeLayout(相对布局)
- Android 的性能 II-性能提升技巧
- 【Android】7.4TableLayout(表格布局)
- Android短信大全案例
- Android Studio—— 关于在Android Studio中使用Assets目录下的资源的问题
- Android——内存调试
- android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
- Android学习笔记二
- android 文件上传
- 说说Android的MVP模式
- ADB问题解决(Android Debug Bridge)
- 解决Android 工程出现 unable to get system library for the project 异常
- android 多线程下载