chips.wang

Results 11 comments of chips.wang

我做的不是在手机上运行的,而是在android主板上,然后通过usb插入一个针孔摄像头。。按照正规的流程写的自定义相机在手机上没得问题,但是在主板是运行出问题。。。最后发现原来是针孔摄像头不支持flashmode。automode,选项,导致我出问题了(没报错,但是不显示画面)。。所以以后在给camera设置属性的时候 还真的得先判断该设备是否支持那个属性

单独写了一个demo。发现不慢。但是用在项目中发现超级慢。不知道是什么原因

> 为什么要有启动模式? > 因为在Android中,启动一个Activity有时需要创建一个新的对象,有时需要复用已有的对象 > ①standard:标准模式、默认模式 > 含义:每次启动一个Activity就会创建一个新的实例。 > 注意:使用ApplicationContext去启动standard模式Activity就会报错。因为standard模式的Activity会默认进入启动它所属的任务栈,但是由于非Activity的Context没有所谓的任务栈。 > 生命周期:每次被创建的实例Activity 的生命周期符合典型情况,它的onCreate、onStart、onResume都会被调用。 > 应用场景:应用与大多数的Activity > > ②singleTop:栈顶复用模式 > 含义:分两种处理情况:需要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的Activity不处于栈顶,此时会又一次创建一个新的Activity入栈,同Standard模式一样。 > 生命周期:若情况一中栈顶的Activity被直接复用时,它的onCreate、onStart不会被系统调用,由于它并没有发生改变。可是一个新的方法 onNewIntent会被回调(Activity被正常创建时不会回调此方法)。 > 应用场景:假设你在当前的Activity中又要启动同类型的Activity,此时建议将此类型Activity的启动模式指定为SingleTop,能够降低Activity的创建,节省内存! > > ③singleTask:栈内复用模式 > 含义:若须要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。...

newIntent 在lanchMode 设置成SingTop 或者Intent 设置SingTop 的flag,才会再次调用。 通过getIntent得到之前的Intent。通过setIntent设置新的Intent 。 SingleInstance应用场景,我看了系统的launch程序,蓝牙程序并不是设置的SingInstanche。相反百度了一圈,俩个应用之间调起Activity,为了不影响彼此,设置成SingleInstance。这个理由/解释不错

1.内存泄露 2.写代码在异常中再次重启,陷入无限循环会出现oom 3.资源文件没关闭,例如contentresolver 4.bitmap 没有及时回收。可以减少argb色彩模式占用的大小,尽可能减少bitmap消耗的内存 5android tv 本身内存较少,加载过多的摄像头视频,也会oom

1.非静态内部类(非静态内部类默认持有外部类的引用,例如Handler:消息队列里的消息持有handler的引用,handler作为内部类持有外部类的引用) 2.注册未解绑(例如EventBUS), 3.资源未关闭未释放(webview、Bitmap未释放)、 4.静态变量(例如单例模式), 5.集合容器(通常把一些对象的引用加入到集合容器中)

Handler内存泄露的根源: 1.内部类持有外部类的引用 2.Handler的message,没有清除 根据这俩点提出的解决方案: 1.将Handler自定义成静态类 2.清除Message 网友提的 弱引用算长知识了

no explicit sample ,decoding long time is a random behavior . we also consider whether the avif file size affects the decoding. but at present, no rules have been found