我有一个使用振动许可的动态壁纸。当显示所有应用程序的滑动屏幕被拉出...(点击时显示日历/计算器/Gmail等的灰色矩形按钮),滑动屏幕上的图标如Gmail/日历/计算器等点击时也颤动。我想知道为什么会发生这种情况,因为壁纸应该失去焦点,它的可见性应该已经改变,因此壁纸不应该处于活动状态。但是,当应用程序开始运行时,这不会发生。它只发生在幻灯片屏幕上。我已经实施了OnvisibilityChanged()
。
public void onVisibilityChanged(boolean visible) {
this.visible = visible;
if (visible) {
iteration();
drawFrame();
} else {
// stop the animation
mHandler.removeCallbacks(mIteration);
}
}
this.visible
中设置为假onSurfaceDestroyed
。
我也做过
View view = new View(getApplicationContext());
view.setFocusableInTouchMode(true);
view.setEnabled(true);
view.requestFocusFromTouch();
if(view.hasWindowFocus())
{
Log.v(TAG,"WindowFocus="+view.hasWindowFocus());
vibrator.vibrate(100);
}
但view.hasWindowFocus
总是假的。为什么这个窗口焦点总是错误的,我怎样才能让壁纸失去焦点?