使用SafeViewFlipper避免ViewFlipper交替时Crash

使用SafeViewFlipper避免ViewFlipper交替时Crash

柳志超博客 » Program » Andriod » 使用SafeViewFlipper避免ViewFlipper交替时Crash

posted in Andriod on 2014/02/19 by liuzc

ViewFilpper 是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换。当我们界面重叠较多的时候,ViewFilpper 容易崩溃,直接导致程序Crash。

我们可以使用自定义的SafeViewFlipper来避免这一问题。

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ViewFlipper;

public class SafeViewFlipper extends ViewFlipper {

    public SafeViewFlipper(Context context) {
        super(context);
    }

    public SafeViewFlipper(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void onDetachedFromWindow() {
        try {
            super.onDetachedFromWindow();
        }
        catch (IllegalArgumentException e) {
            // This happens when you‘re rotating and opening the keyboard that the same time
            // Possibly other rotation related scenarios as well
            stopFlipping();
        }
    }
}
时间: 2024-12-08 18:26:29

使用SafeViewFlipper避免ViewFlipper交替时Crash的相关文章

Android应用覆盖安装时crash问题

最近测试报了这样的问题, 在版本覆盖安装的时候会报如下crash, 实验一下果然,具体跟进了一下,发现要必现该问题是需要条件的: 1,4.0或者4.1系统 2,覆盖前Activitystack 栈中有三个以上Activity 经查很多同仁遇到了同样的问题,收集备忘于此.目前没有太好的解决办法.在高版本系统上或者低版本上没有该种问题.有在排查同样问题的兄弟们没时间不要再去查了.意义不大. java.lang.RuntimeException: Unable to instantiate appli

iOS常见crash问题及crash日志分析

第一.iOS常见crash问题 1.插入空元素 对于NSMutableArray.NSMutableDictionary.NSMutableSet等可变的对象,插入空元素时crash 正确做法是加判断,sample code如下所示: NSDictionary *dic; NSMutableArray *arr=[NSMutableArray new]; if (dic) { [arr addObject:dic]; } NSLog(@"%@",arr); 加非空的判断条件: if(d

【腾讯优测干货】Crash率从2.2%降至0.2%,这个团队是怎么做到的?

特约供稿人:腾讯公司天天P图项目 乔伟康.梁小龙 小优有话说: App Crash就像地雷. 你怕它,想当它不存在.无异于让你的用户去探雷,一旦引爆,用户就没了. 你鼓起勇气去扫雷,它却神龙见首不见尾. 你告诫自己一定开发过程中减少crash,少埋点地雷,但总是不得其法. 降低Crash率,需要的是技巧.工具.耐心与时间. 本文由腾讯天天P图测试团队现身说法,为你讲述他们将Crash率直降90%背后的故事,希望能为你"排雷"提供一些思路. PS:以后每周四记得关注这里哦!小优将为你精选

【腾讯优测干货】看腾讯的技术大牛如何将Crash率从2.2%降至0.2%?

小优有话说: App Crash就像地雷. 你怕它,想当它不存在.无异于让你的用户去探雷,一旦引爆,用户就没了. 你鼓起勇气去扫雷,它却神龙见首不见尾. 你告诫自己一定开发过程中减少crash,少埋点地雷,但总是不得其法. 降低Crash率,需要的是技巧.工具.耐心与时间. 本文由腾讯天天P图测试团队现身说法,为你讲述他们将Crash率直降90%背后的故事,希望能为你“排雷”提供一些思路. PS:以后每周四记得关注这里哦!小优将为你精选“干货”,让腾讯的开发&测试大牛们陪你一起为提升产品质量!

QT 防止FTP 上传软件在断连处 Crash

前段时间发现项目中的上传FTP软件有可能会在从服务器申请断连时Crash, 所以加了一个Timer. 由于项目代码行数过大, 此处上传部分代码片段. timeoutTimer = new QTimer(); connect(timeoutTimer, SIGNAL(timeout()), this, SLOT(doTimeout())); timeoutTimer->setInterval(4000); case QFtp::Closing: // The connection is closi

还原堆栈信息,分析地形系统使用ASTC格式的纹理导致Crash的问题

0x00 前言 在这篇文章中,我们选择了过去一周Unity官方社区交流群中比较有代表性的几个问题,总结在这里和大家进行分享.主要涵盖了IL2CPP.Scripting.Virtual Reality.Graphics.Editor.Terrain.Plugins .Education等领域,其中会着重介绍一下在原生的地形系统中使用ASTC格式纹理导致Crash的问题. 在文章结尾处我们还总结了社区小伙伴们过去一周在群里分享的一些干货连接. 同时,也欢迎大家加入我们这个讨论干货的官方技术群,交流看

【Sprint3冲刺之前】日历表的事件处理和管理(刘铸辉)

我的Sprint2冲刺--日历表的事件处理和管理(刘铸辉,刘静) 我的Sprint2冲刺计划领到的任务是和静姐结对编程,完成日历表的事件处理和管理,下面详细讲解下技术细节. 1.设计结构图 首先要画出整个UI设计图,方便理解这个日历布局和日历样式的绘制. 这里总共分解为两个 View 文件: 1:calender_main.xml(Calender.java用来绘制日历表和日历表中的事件) 作为启动的主画面,新建项目时,首先生成. schedule_toptext:用来显示年月日,闰几月,年份和

Android使用GridView实现日历功能(详细代码)

代码有点多,发个图先: 如果懒得往下看的,可以直接下载源码吧(0分的),最近一直有人要,由于时间太久了,懒得找出来整理,今天又看到有人要,正好没事就整理了一下 http://download.csdn.net/detail/onlyonecoder/6574379 布局文件: [html] view plaincopy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi

Java逐行读取文件有多少种方法?

如果每个线程使用的变量都是其它线程不会读取或修改的,那么就不存在一致性问题.同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题.否则,将会出现不一致性问题.为了解决数据不一致问题,必须引入某些机制使线程间同步. 当变量修改时间多于一个存储器访问周期,同时读.写操作又相互交替时,潜在的不一致性就会出现.如下图所示: 此时,线程B读取到的数据是错误的.使用一把锁能够解决上述问题: 下面介绍线程的三种同步机制: 1.互斥量pthread_mutex_t 互斥量就是锁,对某段临界区进行加锁