当设备的指示灯熄灭时,ViewFlipper会停止翻转

时间:2013-04-10 15:16:16

标签: android android-layout

我正在使用ViewFlipper翻转两张图片。一个图像是一颗小心脏,另一个图像是一颗大心脏,它们不断翻转,看起来心脏在悸动。

除了一件事

之外,一切顺利

当包含Activity的{​​{1}}位于正面且ViewFlipper在我调用ViewFlipper后翻转时,如果我的设备的光线变暗,那么然后关闭,如果我立即按下主页/电源按钮startFlippling停止翻转。在这种情况下,不会调用ViewFlipperonResume

此外,当设备的指示灯熄灭时,如果按下电源按钮并输入密码解锁屏幕,一段时间后,onPause工作正常。

这是我的布局代码,我已将ViewFlipper设置为autoStart因为基于某些事件 我打电话给false

startFlipping
ViewFlipper

2 个答案:

答案 0 :(得分:0)

Rite现在我已将ViewFlipper属性android:keepScreenOn设置为true,以便屏幕保持ON,但我仍在等待更好的答案

答案 1 :(得分:0)

如果我使用setFlipper的startFlipping和setFlipInterval方法,我遇到了同样的问题。所以我通过使用处理程序为viewFlipper设置动画来解决这个问题。

顺便说一下,这个问题出现在Galaxy Nexus 4.0.1上,但不出现在Galaxy Nexus 4.2.2上。

我希望我的代码中的这部分可以帮助你。

private Handler handler = new Handler();

private Runnable autoSwipeRunnable = new Runnable() {
    @Override
    public void run() {
        moveLeft();
    }
};


private void moveLeft() {
    if (mViewFlipper != null && mViewFlipper.getChildCount() > 1) {
        mViewFlipper.setInAnimation(animLeftIn);
        mViewFlipper.setOutAnimation(animLeftOut);

        mViewFlipper.showNext();

        startAutoCycle();           
    }
}

private void startAutoCycle() {
    if (mViewFlipper.getChildCount() > 1) {

        if (autoCycleInterval <= 0) {
            autoCycleInterval = 5000;           
        }

        handler.removeCallbacks(autoSwipeRunnable);
        handler.postDelayed(autoSwipeRunnable, autoCycleInterval);          
    }
}