为什么玩游戏时ipad长按无法删除软件W一段时间后放手人物自动前走5秒了是游戏设置出问题了现在不管玩款哪游戏都这样求大神

玩游戏的时候键盘W按久了再松开后人物还是会继续向前跑,过一会才停下来,其他键没试过,求解.._百度知道
玩游戏的时候键盘W按久了再松开后人物还是会继续向前跑,过一会才停下来,其他键没试过,求解..
主要是笔记本的键盘,玩游戏的时候有影响,其他都好。换成外接键盘能解决么,谢谢各位拉~~~~~
我有更好的答案
1.键盘问题,到修理店修一修就可以了,或者买个好的键盘2.你的游戏很卡,或者游戏问题
采纳率:14%
薄膜键盘的话可能有些错位或者有进水方法是换一个键盘,因为薄膜键盘没啥修头
拆开用酒精擦一下就好了,你的键盘肯定不是刚刚买的
你把W键拔出来,里面有个白色的矽胶键,拨正下。可能是它的恢复力不是很好了。
薄膜键盘键位老化了
看下 键盘是否进油进水了 估计是进油了
其他6条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。适合3-7岁宝宝玩的智力游戏(右脑开发黄金期)
大家好,我是玥玥妈妈,
热衷于幼儿心理研究及幼儿成长教育!
-文:玥玥妈-
列斯加夫特说“我们应该利用游戏,为了教会儿童掌握自己动作的本领”
莎士比亚说:游戏是小孩子的“工作 ;
席勒说:儿童游戏中常寓有深刻的思想;
鲁迅说:游戏是儿童最正当的行为,玩具是儿童的天使!
玩耍是与每一个孩子建立情感联结的最好的、最重要的方式。
关于人的大脑发育的秘密
人类的大脑发育在孕育的第四周开始进行细胞的分类。它们会在不断的“迁移”过程中进行细胞的死亡和更新。事实上大自然给予胎儿的细胞比大脑育实际需要的细胞多,所以最终有用的细胞会按照各自功能占据到大脑的位置,形成一个“突触”的网络。
孩子在与人交往、玩耍的时候,会刺激并塑造大脑,为孩子终生需要的神经网络创建提供动力。
2岁的孩子大脑的突触数量与成年人的已经相同了;
3岁时,孩子的大脑的连接数量就相当于成年人的两倍了;
10岁时孩子的大脑开始修剪多余的(未被充分利用的细胞)突触。
青春期时,开始“第二波”修剪和生长。在整个童年和青春期都处在不断的生长发育中。一直到20岁之后都尚未完全发育成熟。
而游戏则是在玩耍过程中,不断的刺激大脑的“建设”,如果妈妈们希望孩子的大脑得到最大限度的开发,一定不要错过3-7岁这个黄金期!
以下是玥妈在网上搜集的关于适合3-7岁的宝宝玩的一些游戏。妈妈们可以试试哦!
3~7岁的宝宝:右脑开发黄金期
游戏一:我和皮球做朋友
玩法一:妈妈双脚分开当球门,爸爸、宝宝轮流左脚来射门,比一比谁的命中率高。
玩法二:爸爸、妈妈和宝宝轮流左右手拍球。可以提出不同的指令,如:“把球拍得最高”或“把球拍得最低”。
玩法三:将球用绳子固定在比宝宝高出10~20厘米处,请宝宝双脚向上跳,用头顶球,顶到的计数,积累到一定的数字奖励一张贴纸。
玩法四:宝宝按照指令左右脚配合拨动地上的球,或往前或往左、右走,最后把球送回指定的“家”。
玩法五:地上摆好4~8个绒毛玩具,爸爸、妈妈和宝宝比赛,左手对准目标滚动小球,玩具倒下的最多为胜。
提示:这种球类游戏适合3岁以上的宝宝玩,在四肢运动与脑神经系统反复作用过程中,促进大脑皮层和神经细胞的发展。
游戏二:大家一起唱
玩法:把生活中的事件编成歌曲,和宝宝边唱边玩。比如,刷牙、洗脸、吃饭,我们可以把这些活动和我们熟悉的旋律如《生日歌》编在一起来唱:我们-快来-刷-牙,我们-快来-刷-牙,我们-快来-刷-----牙,天天-都要-刷------牙。
提示:这个游戏适合3岁以上的宝宝玩,能发展宝宝的节奏感和创造能力。
游戏三:会滚动的箱子
玩法:把家里买回来的电视或其他大件物品的纸皮包装箱留下,让宝宝钻进去缩紧身体,然后滚动纸皮箱子,宝宝会乐不可支。为了避免伤着宝宝,爸爸妈妈最好在每次滚动箱子之前大声问他:“准备好了吗?”确定他做好了准备才开始,滚动的幅度也可以根据宝宝的适应情况而调整。
提示:这个游戏适合3岁以上的宝宝玩,可以锻炼宝宝的身体平衡感,也能发展宝宝的右脑功能。
游戏四:少了什么,多了什么
玩法:给宝宝看一张图片,上面有动物、食物、用品等。让宝贝指出哪些是食物,哪些是用品。然后再换另一张,上面比第一张有增有减,让宝贝说说少了什么,多了什么。
提示:左脑的记忆为“背记能力”,遗忘率很大,而右脑的记忆是以形象记忆为主,它包含有形状认识力和类型识别力。3岁以上的宝宝已经有了形象记忆和类型识别的基础,爸爸妈妈可以和宝宝进行记忆训练游戏。
游戏五: 猜一猜,找一找
玩法:爸爸妈妈准备几幅虚线图,让宝宝猜一猜是什么,然后再做连线练习,看看猜得对不对;也可以让宝贝找一找隐藏起来的图形,如:蝴蝶隐藏在蝴蝶花中,让他找找,画面上有几只小蝴蝶,几朵蝴蝶花;或把一张复杂的图片给宝贝看,里面有人物、动物和色彩的变化,先让他看整体,再把局部给他看,让他说说这是整体的哪一部分。
提示:这种借助图式思考的游戏适合4岁以上的宝宝玩。在大脑的认识功能中,先着眼局部后顾及整体是左脑功能,而先认识整体再类推局部是右脑功能。图式思考游戏可使左右脑功能更加协调地沟通。
游戏六:苹果树
玩法:从年历上找出有一棵树的图画,让宝宝剪一些苹果贴在树上,注意:剪和贴都由宝宝自己来做,不要要求宝宝剪得像或贴得漂亮,只要他愿意自己动手进行创作,父母就要表现出很欣赏的样子。
提示:这个游戏适合4岁以上的宝宝玩,能发展宝宝的动手能力和左右手的协调能力。
游戏七:美丽的手镯
玩法:把用过的信封留下,横剪成一个一个环,然后和宝宝一起在环上画自己喜欢的图案和颜色,把它套在手腕上当手镯。妈妈先做一个以引起宝宝的兴趣,然后放手让他自己来做,以鼓励为主,不要计较宝宝做得是否漂亮。
提示:这个游戏适合4岁以上的宝宝玩,是多种感官配合的活动,既有手的动作,又有颜色的感觉、图案的设计等等,对发展宝宝的右脑很有帮助。
游戏八:左右不一样
玩法一:屈指:左手屈拇指,右手同时屈小指,或者左手屈食指,右手同时屈无名指,动作可由慢到快。
玩法二:指“五官”,拉着宝宝的一只手,掌心向上,让他的另一只手的食指放在鼻尖、嘴、眼睛、耳朵上,鼓励宝宝随家长拍打手心及喊出的口令而变动位置。
玩法三:摩脚敲膝,左手心向下摸左大腿,右手握拳,放在右大腿上,喊口令“开始”时,左手前后搓左腿,右拳上下敲右腿。一搓一敲,等双手习惯时再下口令“换”,左右手可交替进行。
得示:这种不对称动作的游戏适合5岁以上的宝宝玩。宝宝在按指令做不对称动作的时候,左右大脑会不断地受刺激,使脑细胞扩大功能范围,以增强脑的发育。
除了一些游戏的项目之外,孩子在人际交往、日常生活等各个方面的经历也是可以开发和促进大脑发育的。
以下四种方式的刺激,大家也要注意哦。在平日的学习和生活中,要尽量的多让宝宝参与。
游戏刺激游戏是自由、轻松、愉快的活动,宝宝特别喜欢。只有在游戏中宝宝才能主动地、自觉地接受教育,所以爸爸妈妈在现实生活中尽可能采用各类游戏的形式对宝宝进行开发右脑的训练。
综合刺激视觉、听觉和语言的“综合刺激”特别有助于开发宝宝的右脑。爸爸妈妈可以在1小时内接连不断地给宝宝看恐龙、鲜花等图案,其间穿插儿歌、外语、故事等语言刺激。因为宝宝难以对长时间的相同刺激保持兴趣,所以“综合刺激”可以分成若干小单元,如每次3分钟,然后休息1分钟。
新鲜刺激在平时的生活中,尽量不要让宝宝老走同一条路、老看同一本书、老跟同一个小伙伴玩。送宝宝上幼儿园时不妨故意改变路线,为宝宝选择的书本不妨种类多些,努力创造条件让宝宝有机会结交各种性格和爱好的小朋友,因为新鲜的经历对激活右脑功能好处多多。
绘画刺激绘画是开发右脑的最好方式之一,绘画的能力是一种综合训练,它包括了许多项内容:如视觉感受、动手能力、听觉描述、语言理解等。绘画也是提高宝贝观察能力的好方法。在绘画过程中,右脑对曲线的感受更明显,可以和宝贝多做这方面的游戏。曲线拓描和联想,是比较有趣和容易实行的绘画方式。
丹尼尔o西格尔和蒂娜o佩恩o布赖森在《全脑教养法》中说:
发生在我们身上的每一件事都影响着大脑的发育方式。这个连续和再连接的过程,就是整合的全部:给我们的孩子体验,以建立大脑不同部分之间的连接。当这些部分协调运转时,它们就会创建并强化连接大脑不同部分的整合纤维。结果,大脑的不同部分会以更加牢固的方式连接起来,并能更和诣的运转。
虽然大脑的发育有着基因的遗传,但是后天的培养也很重要。我们常说“脑子越用越灵”,意思就是大脑用则时不用则废。
猜你还想了解这些
儿童敏感期 | 起床气| 害怕学习
孩子太倔强 | 孩子爱顶嘴| 孩子撒谎
宝宝害怕什么 | 零花钱该给吗
要不要上兴趣班 | 让孩子做家务| 绘本阅读书单
推荐32部经典动画片 | 反话教育
我是玥玥妈妈,每天一篇原创育儿心得分享,
长按二维码关注我们
或加我微信号chuyuemama
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点& 为什么我长按w后,人物会不停的往前走啊 ...
为什么我长按w后,人物会不停的往前走啊
为什么我长按w后,人物会不停的往前走啊
总是要按个A或者D 几下才能停下来,什么情况这是,已经恢复了控制下的默认设置了还是这样@
不如你换个键盘试试?
不如你换个键盘试试?
笔记本键盘换不了的
应该不是键盘的事,打字按W没事的,玩别的游戏按W也不会出现这种情况
笔记本键盘换不了的
笔记本也能换键盘。。
未必只是w吧
我也是这样 笔记本键盘& &已经试过了 没出故障 就是游戏一直走&&输入法也换了
我偶尔也会一直往左走&&就是按了A就停不下来&&要按几次别的方向才可以停下来&&可以去售后看看
就是键盘问题&&我之前也这样
逼你蛇皮走步啊
有话想说?立即登录发表你的观点!
请举报任何违规行为,包括:
暴力威胁。我们将严肃对待此类行为,并会上报有关部门。
发布的主题中包含其他玩家的个人信息。包括实际地址、邮箱地址、电话号码及不当的照片和/或视频。
骚扰或歧视性用语。此类言辞将不允许出现。
点击显示论坛主题发布规则
积极健康的游戏心态是健康游戏的开端,本游戏故事情节设置紧凑,请您合理控制游戏时间,避免沉溺游戏影响生活,注意自我保护,防范网络陷阱。
健康游戏忠告:抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。android6.0 固定屏幕功能
可能大家看到这个标题不知道是什么东西,我先说明下,android6.0在设置-&安全-&屏幕固定开启后,然后再长按home键出现最近的几个Activity可以选择一个图钉按钮就开启了屏幕固定功能。
屏幕固定开启后,屏幕只能固定在设定的Task上的Activity切换。
一、设置固定屏幕
我们先来看SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java的代码,这段代码就是长按home键出现几个Activity,然后按了图钉的那个按钮。在这里直接调用了AMS的startLockTaskModeOnCurrent函数。
public void onClick(View v) {
if (v.getId() == R.id.screen_pinning_ok_button || mRequestWindow == v) {
ActivityManagerNative.getDefault().startLockTaskModeOnCurrent();
} catch (RemoteException e) {}
clearPrompt();
我们来看AMS的startLockTaskModeOnCurrent函数,先调用ActivityStackSupervisor的topRunningActivityLocked获取最前面的Activity,然后调用startLockTaskModeLocked函数,参数是TaskRecord。
public void startLockTaskModeOnCurrent() throws RemoteException {
enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
&startLockTaskModeOnCurrent&);
long ident = Binder.clearCallingIdentity();
synchronized (this) {
ActivityRecord r = mStackSupervisor.topRunningActivityLocked();
if (r != null) {
startLockTaskModeLocked(r.task);
} finally {
Binder.restoreCallingIdentity(ident);
我们再来看topRunningActivityLocked函数,先从mFocusedStack中获取最前面的Activity。如果没有再遍历所有的mStacks获取。
ActivityRecord topRunningActivityLocked() {
final ActivityStack focusedStack = mFocusedS
ActivityRecord r = focusedStack.topRunningActivityLocked(null);
if (r != null) {
// Return to the home stack.
final ArrayList stacks = mHomeStack.mS
for (int stackNdx = stacks.size() - 1; stackNdx &= 0; --stackNdx) {
final ActivityStack stack = stacks.get(stackNdx);
if (stack != focusedStack && isFrontStack(stack)) {
r = stack.topRunningActivityLocked(null);
if (r != null) {
在startLockTaskModeLocked函数中主要是调用了ActivityStackSupervisor的setLockTaskModeLocked函数,下面我们来看这个函数,我们的task不为null,第一次mLockTaskModeTasks为空,会发送一个LOCK_TASK_START_MSG消息
void setLockTaskModeLocked(TaskRecord task, int lockTaskModeState, String reason,
boolean andResume) {
if (task == null) {
// Take out of lock task mode if necessary
final TaskRecord lockedTask = getLockedTaskLocked();
if (lockedTask != null) {
removeLockedTaskLocked(lockedTask);
if (!mLockTaskModeTasks.isEmpty()) {
// There are locked tasks remaining, can only finish this task, not unlock it.
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK,
&setLockTaskModeLocked: Tasks remaining, can't unlock&);
lockedTask.performClearTaskLocked();
resumeTopActivitiesLocked();
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK,
&setLockTaskModeLocked: No tasks to unlock. Callers=& + Debug.getCallers(4));
// Should have already been checked, but do it again.
if (task.mLockTaskAuth == LOCK_TASK_AUTH_DONT_LOCK) {
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK,
&setLockTaskModeLocked: Can't lock due to auth&);
if (isLockTaskModeViolation(task)) {
Slog.e(TAG_LOCKTASK, &setLockTaskMode: Attempt to start an unauthorized lock task.&);
if (mLockTaskModeTasks.isEmpty()) {
// First locktask.
final Message lockTaskMsg = Message.obtain();
lockTaskMsg.obj = task.intent.getComponent().getPackageName();
lockTaskMsg.arg1 = task.userId;
lockTaskMsg.what = LOCK_TASK_START_MSG;//发送消息
lockTaskMsg.arg2 = lockTaskModeS
mHandler.sendMessage(lockTaskMsg);
// Add it or move it to the top.
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK, &setLockTaskModeLocked: Locking to & + task +
& Callers=& + Debug.getCallers(4));
mLockTaskModeTasks.remove(task);
mLockTaskModeTasks.add(task);//加入到mLockModeTasks中
if (task.mLockTaskUid == -1) {
task.mLockTaskUid = task.effectiveU
if (andResume) {
findTaskToMoveToFrontLocked(task, 0, null, reason);//把task放最前面
resumeTopActivitiesLocked();//显示新的Activity
我们再来看消息处理,在消息处理中主要调用了WMS的disableKeyguard函数。
case LOCK_TASK_START_MSG: {
// When lock task starts, we disable the status bars.
if (mLockTaskNotify == null) {
mLockTaskNotify = new LockTaskNotify(mService.mContext);
mLockTaskNotify.show(true);
mLockTaskModeState = msg.arg2;
if (getStatusBarService() != null) {
int flags = 0;
if (mLockTaskModeState == LOCK_TASK_MODE_LOCKED) {
flags = StatusBarManager.DISABLE_MASK
& (~StatusBarManager.DISABLE_BACK);
} else if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) {
flags = StatusBarManager.DISABLE_MASK
& (~StatusBarManager.DISABLE_BACK)
& (~StatusBarManager.DISABLE_HOME)
& (~StatusBarManager.DISABLE_RECENT);
getStatusBarService().disable(flags, mToken,
mService.mContext.getPackageName());
mWindowManager.disableKeyguard(mToken, LOCK_TASK_TAG);
if (getDevicePolicyManager() != null) {
getDevicePolicyManager().notifyLockTaskModeChanged(true,
(String)msg.obj, msg.arg1);
} catch (RemoteException ex) {
throw new RuntimeException(ex);
二、固定屏幕后Activity启动流程
在固定屏幕后,如果我们启动其他TaskRecord的Activity是不能启动的,我们来看下这个原理。在startActivityUncheckedLocked函数中会调用isLockTaskModeViolation函数来判断是否进一步的Activity的启动流程,我们来看下这个函数,调用getLockedTaskLocked来看mLockTaskModeTasks(就是锁定屏幕的那些Task),如果当前的task就是当前正在固定屏幕的task,直接return false就是可以继续启动Activity的流程,而如果不是,我们需要看task的mLockTaskAuth变量。
boolean isLockTaskModeViolation(TaskRecord task, boolean isNewClearTask) {
if (getLockedTaskLocked() == task && !isNewClearTask) {
final int lockTaskAuth = task.mLockTaskA
switch (lockTaskAuth) {
case LOCK_TASK_AUTH_DONT_LOCK:
return !mLockTaskModeTasks.isEmpty();
case LOCK_TASK_AUTH_LAUNCHABLE_PRIV:
case LOCK_TASK_AUTH_LAUNCHABLE:
case LOCK_TASK_AUTH_WHITELISTED:
case LOCK_TASK_AUTH_PINNABLE:
// Pinnable tasks can't be launched on top of locktask tasks.
return !mLockTaskModeTasks.isEmpty();
Slog.w(TAG, &isLockTaskModeViolation: invalid lockTaskAuth value=& + lockTaskAuth);
我们再来看TaskRecord的setLockedTaskAuth函数,在新建一个TaskRecord的时候会调用setIntent函数,而setIntent函数又是在TaskRecord的构造函数中调用的。我们来看这个函数mLockTaskAuth的值是根据mLockTaskMode来定的,而mLockTaskMode又是ActivityInfo传入的,这个值是在PKMS解析Manifest.xml的时候构造的,默认就是LOCK_TASK_LAUNCH_MODE_DEFAULT,而当没有白名单mLockTaskAuth最后就是LOCK_TASK_AUTH_PINNABLE。
void setLockTaskAuth() {
if (!mPrivileged &&
(mLockTaskMode == LOCK_TASK_LAUNCH_MODE_ALWAYS ||
mLockTaskMode == LOCK_TASK_LAUNCH_MODE_NEVER)) {
// Non-priv apps are not allowed to use always or never, fall back to default
mLockTaskMode = LOCK_TASK_LAUNCH_MODE_DEFAULT;
switch (mLockTaskMode) {
case LOCK_TASK_LAUNCH_MODE_DEFAULT:
mLockTaskAuth = isLockTaskWhitelistedLocked() ?
LOCK_TASK_AUTH_WHITELISTED : LOCK_TASK_AUTH_PINNABLE;
case LOCK_TASK_LAUNCH_MODE_NEVER:
mLockTaskAuth = LOCK_TASK_AUTH_DONT_LOCK;
case LOCK_TASK_LAUNCH_MODE_ALWAYS:
mLockTaskAuth = LOCK_TASK_AUTH_LAUNCHABLE_PRIV;
case LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED:
mLockTaskAuth = isLockTaskWhitelistedLocked() ?
LOCK_TASK_AUTH_LAUNCHABLE : LOCK_TASK_AUTH_PINNABLE;
if (DEBUG_LOCKTASK) Slog.d(TAG_LOCKTASK, &setLockTaskAuth: task=& + this +
& mLockTaskAuth=& + lockTaskAuthToString());
我们再来看isLockTaskModeViolation函数如下代码,现在是task的mLockTaskAuth 是LOCK_TASK_AUTH_PINNABLE,而当前处于固定屏幕,所以mLockTaskModeTasks不为null,最后返回true。那Activity启动流程就不能走下去了,那就是代表启动普通的Activity会被阻止。
case LOCK_TASK_AUTH_PINNABLE:
// Pinnable tasks can't be launched on top of locktask tasks.
return !mLockTaskModeTasks.isEmpty();
三、取消固定屏幕
最后我们再来看看取消固定屏幕,取消屏幕会在PhoneStatusBar中取消,但是一定是要有虚拟键,原生就是这么设定的。最后调用了AMS的stopLockTaskModeOnCurrent函数。这个函数主要是调用了stopLockTaskMode函数,这个函数中主要是调用了ActivityStackSupervisor的setLockTaskModeLocked函数,之前在固定屏幕时也是调用了这个函数,但是这里我们仔细看,其第一个参数为null。
public void stopLockTaskMode() {
final TaskRecord lockTask = mStackSupervisor.getLockedTaskLocked();
if (lockTask == null) {
// Our work here is done.
final int callingUid = Binder.getCallingUid();
final int lockTaskUid = lockTask.mLockTaskU
// Ensure the same caller for startLockTaskMode and stopLockTaskMode.
// It is possible lockTaskMode was started by the system process because
// android:lockTaskMode is set to a locking value in the application manifest instead of
// the app calling startLockTaskMode. In this case {@link TaskRecord.mLockTaskUid} will
// be 0, so we compare the callingUid to the {@link TaskRecord.effectiveUid} instead.
if (getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_LOCKED &&
callingUid != lockTaskUid
&& (lockTaskUid != 0
|| (lockTaskUid == 0 && callingUid != lockTask.effectiveUid))) {
throw new SecurityException(&Invalid uid, expected & + lockTaskUid
+ & callingUid=& + callingUid + & effectiveUid=& + lockTask.effectiveUid);
long ident = Binder.clearCallingIdentity();
Log.d(TAG, &stopLockTaskMode&);
// Stop lock task
synchronized (this) {
mStackSupervisor.setLockTaskModeLocked(null, ActivityManager.LOCK_TASK_MODE_NONE,
&stopLockTask&, true);
} finally {
Binder.restoreCallingIdentity(ident);
我们来看下这个函数,如果为空,现在调用getLockedTaskLocked获取当前固定屏幕的TaskRecord,然后调用removeLockedTaskLocked去除这个TaskRecord,如果还不为null,调用resumeTopActivitiesLocked启动下个Activity(一般也就是下个屏幕锁定的TaskRecord的Activity)。
如果为空了,直接返回。但是在我们下次启动普通的Activity的时候就恢复正常了,因为mLockTaskModeTasks已经为空了。
void setLockTaskModeLocked(TaskRecord task, int lockTaskModeState, String reason,
boolean andResume) {
if (task == null) {
// Take out of lock task mode if necessary
final TaskRecord lockedTask = getLockedTaskLocked();
if (lockedTask != null) {
removeLockedTaskLocked(lockedTask);
if (!mLockTaskModeTasks.isEmpty()) {
// There are locked tasks remaining, can only finish this task, not unlock it.
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK,
&setLockTaskModeLocked: Tasks remaining, can't unlock&);
lockedTask.performClearTaskLocked();
resumeTopActivitiesLocked();
if (DEBUG_LOCKTASK) Slog.w(TAG_LOCKTASK,
&setLockTaskModeLocked: No tasks to unlock. Callers=& + Debug.getCallers(4));
四、没有虚拟键如何取消屏幕固定
前面说过如果没有虚拟键就不能取消屏幕固定了,我们说下几种方式
1.使用am命令 am task lock stop可以调用am的stopLockTaskMode函数
2.另一种我们可以在Activity.java中修改代码,比较长按返回键调用AMS的stopLockTaskMode方法,下面就是实现,Activity本身提供了stopLockTask就是调用了AMS的stopLockTaskMode方法
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
stopLockTask();
3.直接在Settings中对这项进行置灰处理
在SecuritySettings会读取security_settings_misc.xml文件然后加入相关perference,这其中就会有如下是屏幕固定相关的
我们可以在SecuritySettings读取该文件之后,调用WMS的hasNavigationBar来看有没有虚拟键(没有虚拟按键到时候不能取消屏幕固定),如果没有直接把Settings中这项置灰。
// Append the rest of the settings
addPreferencesFromResource(R.xml.security_settings_misc);
IWindowManager windowManager = WindowManagerGlobal.getWindowManagerService();
boolean is_screen_pining = windowManager.hasNavigationBar();
root.findPreference(KEY_SCREEN_PINNING).setEnabled(is_screen_pining);
} catch(RemoteException e) {
Log.e(&SecuritySettings&, &get window service remoteException.&);}

我要回帖

更多关于 玩游戏键盘不能长按 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信