Android 的 Presentation 双屏异显,遇到的问题总结
时间:2022-07-28
本文章向大家介绍Android 的 Presentation 双屏异显,遇到的问题总结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
工作中用到了Android的 Presentation 双屏异显,本以为很简单的,结果真实项目中还是遇到了一些问题。
而这些问题呢,网上能查到的寥寥,群里也没人会告诉你。好在我尝试过程中一一解决了。这里记录下来。
遇到的问题有:
1.Presentation中弹出的对话框,显示像素密度可能跟前屏的像素密度不一致,导致必须得适配。
2.Presentation的异步显示,当异显的屏幕配置信息改变时,会自动dismiss,提示Presentation is being dismissed because display metrics have changed since it was created
3.Presentation中创建的对话框,不是模态的对话框,就是说如果它是个登录框的话,后面的内容还能点击。
4.Presentation中不能调用Android系统的软键盘。
.5.双屏之间的通信问题和同步异步显示。
6.后屏无法显示Toast消息问题。
这些问题好在我都一一解决了。网上问了个遍都没答案,我差点以为我是全网唯一一个用到这玩意的。。
你们还遇到过哪些坑呢?欢迎补充留言。
双屏异显的用法也很简单,如:
private void initPresentation() {
mediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
displayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
displays = displayManager.getDisplays();
MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_AUDIO);
if (route != null) {
Display presentationDisplay = route.getPresentationDisplay();
if (presentationDisplay != null) {
presentation = new IndexPresent(this, displays[1]);
presentation.show();
presentation.showLogin();
}
}
}
IndexPresent类继承自Presentation。
public class IndexPresent extends Presentation {
private static final String TAG = "IndexPresent";
private Context context;
private Context mycontext;
......
public IndexPresent(Context outerContext, Display display) {
super(outerContext, display);
Log.e(TAG, "IndexPresent");
this.context = outerContext;
mycontext = getContext();
}
private void initDate(){
Observable.interval(0, 1000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
Date nowDate = new Date();
String setDay = ymd.format(nowDate);
String setTime = hms.format(nowDate);
String setWeek = DateUtils.getWeek();
indexDataBindingBean.hourMinuteSecond.set(setTime);
indexDataBindingBean.yearMonthDate.set(setDay);
indexDataBindingBean.week.set(setWeek);
}
});
}
}
- 关于exp/imp的总结学习(r4笔记第26天)
- 除了写烂的手写数据分类,你会不会做自定义图像数据集的识别?!
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
- 绝对定位下的盒模型
- 运行shell脚本时报错"[[ : not found"解决方法
- 关于表联结方法(二) (r4笔记第23天)
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API
- XSS分析及预防
- 关于ORA-01779问题的分析和解决 (r4笔记第22天)
- 想看爱奇艺VIP视频?一个python脚本帮你搞定
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势
- 关于shell中的pl/sql脚本错误排查与分析(r4笔记第21天)
- 关于BFC不会被浮动元素遮盖的一些解释
- MyBatis + MySQL返回插入成功后的主键id
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Yii框架布局文件的动态切换操作示例
- 关于laravel 子查询 & join的使用
- PHPUnit + Laravel单元测试常用技能
- php接口隔离原则实例分析
- laravel实现按月或天或小时统计mysql数据的方法
- laravel model模型处理之修改查询或修改字段时的类型格式案例
- 对laravel的session获取与存取方法详解
- php 中self,this的区别和操作方法实例分析
- Laravel使用原生sql语句并调用的方法
- Yii框架自定义数据库操作组件示例
- laravel 使用事件系统统计浏览量的实现
- PHP之多条件混合筛选功能的实现方法
- PHP多进程简单实例小结
- 解决laravel5中auth用户登录其他页面获取不到登录信息的问题
- Yii框架学习笔记之应用组件操作示例