登录后台

页面导航

本文编写于 2398 天前,最后修改于 1667 天前,其中某些信息可能已经过时。

讲作业

先把昨天卖的关子给说了,怎么才能按返回键实现网页后退。我们需要做一个返回键拦截,然后手动控制网页后退。请看代码:

public boolean onKeyDown(int keyCode, KeyEvent event) { //支持网页后退
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

我们首先重写了 onKeyDown 方法,在这个方法体里做一下判断,如果按的是返回键同时网页可以后退就调用 webview 的 goBack 方法。不会的同学就直接复制我的这个吧,我当时就是。随着技术的增长积累,就明白了。

隐式 Intent

有的时候我们并不是明确的要启动某一个活动,比如我要打开系统浏览器,我也不可能把每一个浏览器的活动都写一遍。这时就需要用到隐式 Intent 了。隐式 Intent 是和系统描述我们要做什么,然后系统就会打开对应可以处理的程序。比如说我告诉系统我要打开一个网页,系统就会自动调用浏览器来执行。

使用 action 限定隐式 Intent:

一个活动要想能被别的活动调用,首先被调用的Activity在AndroidManifest.xml文件中要有一个带有<intent-filter>并且包含<action>的Activity,并且设定它能处理的Intent。将category设为"android.intent.category.DEFAULT"。action的name是一个字符串,可以自定义,例如我在这里设成"webview":

<activity android:name=".webview_activity">
    <intent-filter>
        <action android:name="webview"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

然后,在MainActivity,才可以通过这个action name找到上面的Activity。下面两种方式分别通过setAction和构造方法方法设置Action,两种方式效果相同:

1、setAction方法

Intent intent = new Intent();
intent.setAction("webview");
startActivity(intent);

2、构造方法直接设置Action

Intent intent = new Intent("webview");
startActivity(intent);

通过设置Action字符串,表明自己的意图,即我想干嘛,需要由系统解析,找到能够处理这个 Intent 的 Activity 并启动。比如我想打电话,则可以设置Action为"android.intent.action.DIAL"字符串,表示打电话的意图,系统会找到能处理这个意图的Activity,例如调出拨号面板。 不过需要注意的是:这个Activity其他应用程序也可以调用,只要使用这个Action字符串。这样应用程序之间交互就很容易了,例如手机QQ可以调用QQ空间,可以调用腾讯微博等。 因为如此,为了防止应用程序之间互相影响,一般命名方式是包名+Action名,例如这里命名"webview"就很不合理了,就应该改成"com.intent.test.webview"。

再回过头去看看 AndroidManifest.xml 你会发现不光有 action 还有个 category 。这么说吧,要 Action 和 category 同时匹配上才行。因为「android.intent.category.DEFAULT」是一个默认的 category 所以就不用写了。

总结

为啥这一节这么匆忙,因为,,,,这东西了解就好,到用的时候再回来看一下就好了。

一共二十二讲,我觉得你应该也算是入门了吧,你已经具备了自己探索的能力了。

第一季是时候说再见了,我会利用一段的时间闭关去提升自己的能力,以更好的姿态面对大家。不过不用伤心,大家敬请期待第二期:『烽哥带你彪程序』

2020/5/24 注:
这是我 2018 年高中毕业的假期写的,当时并没有自己搭建博客,近期我给这一系列的文章都放到我自己的博客上。
当时写这个系列文章的想法就是扎实下基础,然后能帮到更多的人就更好了,但是大学开学之后就开始了新生活,没有大块的时间去编撰,系列文章也没有再更新过。但是我其实并不想放弃这个系列,那就,有缘再见吧,拜拜ヾ(•ω•`)o