windows phone的回退事件与android的回退事件有什么区别

public void onBackPressed() {
    finish();
}

如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更 加傻瓜化能够后退键保存相应的数据啊。

不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的方法,能够使你回到 相应的后退界面,因为他航到 Back 堆栈中的最新条目。 如果 Back 堆栈中没有任何条目,则此方法将 引发异常;在调用此方法前,始终都要检查 CanGoForward。 这是由于一个页面毡对相应的page进行了 管理,自愿遵守先进后出的原理也很好管理。而android中activity本身也有一个栈对象对相应的 activity进行了管理,自愿后退时候,也能够进行了后退。想法是很好的,但现实是残酷的。你看我们 android程序员必须在onkey事件中对相应的事件进行监听,判断他按下是不是back键来回退按钮。 这里 事件是activity必须要实现传递,来截获这个后退按下的事件。我这里重点要提出一个问题,onKeyDown 事件究竟是一层层实现back事件的.android 就是比.net好啊!开源,看源代码。

需调用activity中的onKeyDown事件,他的源代码如何: 这是我们定义到了activity中的onKeyDown 事件,他的源代码是这样子的:

if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getApplicationInfo().targetSdkVersion
                    >= Build.VERSION_CODES.ECLAIR) {
                event.startTracking();
            } else {
                onBackPressed();
            }
            return true;
        }

判断其目标版本是不是比本版本大的的话,就调用event.startTracking()方法,对 event.startTracking()方法跟踪,发现他总是相隔了一段时间进行调用。

否则的话,就调用onbackPressed方法。这个方法又是个怎么鸟样。源代码如下:

   public void onBackPressed() {
       finish();
   }

他就调用 finish结束了当前的activity了,他的源代码又是这个鸟样:

public void finish() {
        if (mParent == null) {
            int resultCode;
            Intent resultData;
            synchronized (this) {
                resultCode = mResultCode;
                resultData = mResultData;
            }
            if (Config.LOGV) Log.v(TAG, "Finishing self: token=" + mToken);
            try {
                if (ActivityManagerNative.getDefault()
                    .finishActivity(mToken, resultCode, resultData)) {
                    mFinished = true;
                }
            } catch (RemoteException e) {
                // Empty
            }
        } else {
            mParent.finishFromChild(this);
        }
    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 源代码
, activity
, 方法
, 事件
, back键监听
, targetsdkversion
, 源代码onkey unner
, 回退
, 一个
, back事件
, android事件
, 页面回退
onBackPressed
庚phone事件、windows phone、windowsphone、windows phone 10、windowsphone手机,以便于您获取更多的相关知识。

时间: 2024-09-03 21:09:41

windows phone的回退事件与android的回退事件有什么区别的相关文章

比较windows phone 的回退事件与android的回退事件

public void onBackPressed() { finish(); } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化能够后退键保存相应的数据啊. 不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的方法,能够使你回到相应的后退界面,因为他航到 Back 堆栈中的最新条目. 如果 Back 堆栈中没有任何条目,则此方法将引发异常:在调用此方法前,始终都要检查 CanGoFor

Android 的触摸事件详解及示例代码_Android

由于触摸(Touch)而触发的事件 Android的事件:onClick, onScroll,onFling等等,都是由许多个Touch组成的.其中Touch的第一个状态肯定是ACTION_DOWN,表示按下了屏幕.之后,touch将会有后续事件,可能是: ACTION_MOVE //表示为移动手势 ACTION_UP //表示为离开屏幕 ACTION_CANCEL //表示取消手势,不会由用户产生,而是由程序产生的 一个Action_DOWN, n个ACTION_MOVE, 1个ACTION_

Android点击事件派发机制源码分析_Android

概述  一直想写篇关于Android事件派发机制的文章,却一直没写,这两天刚好是周末,有时间了,想想写一篇吧,不然总是只停留在会用的层次上但是无法了解其内部机制.我用的是4.4源码,打开看看,挺复杂的,尤其是事件是怎么从Activity派发出来的,太费解了.了解Windows消息机制的人会发现,觉得Android的事件派发机制和Windows的消息派发机制挺像的,其实这是一种典型的消息"冒泡"机制,很多平台采用这个机制,消息最先到达最底层View,然后它先进行判断是不是它所需要的,否则

Android点击事件派发机制源码分析

概述 一直想写篇关于Android事件派发机制的文章,却一直没写,这两天刚好是周末,有时间了,想想写一篇吧,不然总是只停留在会用的层次上但是无法了解其内部机制.我用的是4.4源码,打开看看,挺复杂的,尤其是事件是怎么从Activity派发出来的,太费解了.了解Windows消息机制的人会发现,觉得Android的事件派发机制和Windows的消息派发机制挺像的,其实这是一种典型的消息"冒泡"机制,很多平台采用这个机制,消息最先到达最底层View,然后它先进行判断是不是它所需要的,否则就

Android编程输入事件流程详解_Android

本文实例讲述了Android编程输入事件流程.分享给大家供大家参考,具体如下: EventHub对输入设备进行了封装.输入设备驱动程序对用户空间应用程序提供一些设备文件,这些设备文件放在/dev/input里面. EventHub扫描/dev/input下所有设备文件,并打开它们. bool EventHub::openPlatformInput(void) { ... mFDCount = 1; mFDs = (pollfd *)calloc(1, sizeof(mFDs[0])); mDev

Android中的事件分发和处理

上次跟大家分享了一下自定义View的一下要点,这次跟大家聊一下View的事件分发及处理,为什么主题都是View,因为作为一名初级应用层Android工程师,跟我打交道最多的莫过于各种各样的View,只有详细了解他们各自的习性,才能更好地跟他们沟通交流,做出自己想要的效果. 基础储备 View.MotionEvent 我们都能详细地说出Android的四大组件:Activity,Service,ContentProvider和BoardcastReceiver,但是四大组件之外,我们用到也很多的是

android应用-android 派发Touch事件

问题描述 android 派发Touch事件 我已经实现了ListView的下拉刷新功能,但是在初始进入这个页面的时候,需要模拟下拉这个动作,让ListView自动开始刷新,请问这个怎么实现?谢谢 解决方案 在本应用中,模拟一次点击触屏的操作是可以的.如: Instrumentation inst = new Instrumentation();inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis()SystemCloc

事件分发-Android中怎么根据move动作来决定事件是否分发?(事件冲突问题)

问题描述 Android中怎么根据move动作来决定事件是否分发?(事件冲突问题) 1C 我们知道安卓里一次touch事件是down move up组成的但是只有down事件返回为true时,这个view接下来才会接收到move和up事件,并且停止分发到其他的view里.现在我的问题是,我想通过move的动作来决定事件要给哪个view怎么办?想要查看move的动作,就必须down事件返回true,那么这次touch事件就被拦截掉了,没办法分配到其他的view上啊.举例说吧:现在有父控件和子控件的

android-如何解决Android点击事件之间的冲突呢

问题描述 如何解决Android点击事件之间的冲突呢 如题:想做一个播放音频的Demo,可以发送文字和语音,现在问题来了,当发送文字之后键盘还在弹起状态,我在整个View里面添加了OnTouch事件,当点击的时候关闭软键盘,现在想播放语音,点击播放按钮的时候会先关闭掉软件盘,然后才能点击按钮,如何做到两个点击事件不冲突呢,求大神解答 解决方案 去掉你的onTouch事件,在所在的Activity中加入如下代码: // 点击编辑框之外的地方收回软键盘 @Override public boolea