在使用 Zxing 开源项目的时候 Activity 关闭
来源:互联网 发布:mac怎么打开html文件 编辑:程序博客网 时间:2024/06/05 16:55
项目中用到 Zxing ; 它作为我tabhost重的一个 activity ,发现 程序总是莫名其妙的被关闭掉;
我看到这个信息:GC_FOR_ALLOC freed 6785K, 11% free 44735K/49812K, paused 39ms, total 39ms
起初我还以为是哪里报错了,或者哪里有内存溢出;最后 锁定在了 扫描二维码 的这个activity 上,进而 查看它的源码 InactivityTimer类 惊了个呆 !
/** * Finishes an activity after a period of inactivity. */public final class InactivityTimer {private static final class DaemonThreadFactory implements ThreadFactory {@Overridepublic Thread newThread(Runnable runnable) {final Thread thread = new Thread(runnable);thread.setDaemon(true);return thread;}}private static final int INACTIVITY_DELAY_SECONDS = 5 * 60;private final Activity activity;private ScheduledFuture<?> inactivityFuture = null;private final ScheduledExecutorService inactivityTimer =Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory());public InactivityTimer(Activity activity) {this.activity = activity;onActivity();}private void cancel() {if (inactivityFuture != null) {inactivityFuture.cancel(true);inactivityFuture = null;}}public void onActivity() {cancel();inactivityFuture = inactivityTimer.schedule(new FinishListener(activity),INACTIVITY_DELAY_SECONDS,TimeUnit.SECONDS);}public void shutdown() {cancel();inactivityTimer.shutdown();}}
FinishListener 类:
/** * Simple listener used to exit the app in a few cases. * */public final class FinishListenerimplements DialogInterface.OnClickListener, DialogInterface.OnCancelListener, Runnable {private final Activity activityToFinish;public FinishListener(Activity activityToFinish) {this.activityToFinish = activityToFinish;}@Overridepublic void onCancel(DialogInterface dialogInterface) {run();}@Overridepublic void onClick(DialogInterface dialogInterface, int i) {run();}@Overridepublic void run() {activityToFinish.finish();}}
明白了吧! Activity 被 finish 掉了!(用别人的 东西还是要建立在熟悉了的基础上比较好)
最后附上 Zxing 框架结构分析:http://www.docin.com/p-499187165.html
0 0
- 在使用 Zxing 开源项目的时候 Activity 关闭
- 如何随时随地退出Activity,在退出Activity的时候关闭之前的Activity,如何退出程序所有Activity
- android 在dialog show的时候,要先判断当前Activity窗口是否关闭
- 在没有activity的时候使用getContentResolver方法
- onNewIntent在Activity设置为singleTask时候的使用
- Android studio 二维码开源项目ZXing使用详解
- 一个简单的例子教你如何使用zxing开源项目
- 二维码识别开源项目zxing的使用和源码分析
- Google Zxing开源项目的Android集成与简单使用
- 二维码识别开源项目zxing的使用和源码分析
- Zxing二维码开源项目
- 使用Zxing扫描二维码的时候,图片变形
- 关于杀进程关闭activity的时候onDestroy的执行情况
- .NET : 在定义项目模板的时候使用占位符
- Android二维码识别 开源项目ZXing的编译
- Android二维码识别 开源项目ZXing的编译
- zxing开源项目 解决生成二维码保存的问题
- activity在锁屏时候的生命周期
- NIO与IO区别
- 【POJ1987】Distance Statistics ==【POJ1741】 树分治
- 如何在iOS 8中使用CoreLocation定位
- Android总结之Activity启动模式
- Ubuntu技巧之清理系统中无用的软件包
- 在使用 Zxing 开源项目的时候 Activity 关闭
- 黑马程序员-javase 正则表达式
- 亿级用户下的新浪微博平台架构
- ccid驱动支持
- 类似于支付宝双击home键进入后台模糊效果-blurView
- 字符串的全排列
- ios-day12-04(ios开发中数据存储之NSKeyedArchiver归档(NSCoding)、普通对象如何归档、普通对象的子类如何归档)
- 100米下落
- 一种排序