`
zretc
  • 浏览: 19591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BroadcastReceiver与Notification的综合应用之自定义Action的调用方式

    博客分类:
  • Java
阅读更多

 

Android的实际应用开发中,我们经常会遇到数据推送的相关技术,比如在应用软件启动后,系统会自动在Android的通知栏弹出相应的信息,以便于提示用户进行相关的操作或消息推送。那这项技术在Android中式如何实现的呢?我们通过这篇文章简单介绍一下该技术的实现方法,希望大家能够了解并掌握这项核心的技术。

 

   首先,若想实现这个技术要涉及以下三个核心的知识点:

 

1.   自定义Action的调用方式

 

2.   BroadcastReceiver的基本应用

 

3.   Notification通知机制的使用

 

本文仅对知识点1做一个讲解和阐述,后续知识点在后续文章中进行讲解。

 

那么,我们就逐一对这些技术进行一个简单的说明,希望大家能够快速掌握这项技术。

 

项目实现效果图:

知识点1:自定义Action的调用方式

 

    Intent作为Android系统中各组件之间的纽带起着至关重要的作用,在我们的平时应用中Intent对象主要完成两件事情,一件是多个Activity(界面)之间的跳转,另一个件是使用putExtras()方法完成界面件数据的传递。其实在我们的AndroidIntent的作用不止这些,他有着强大的功能,很多组件的启动全部依赖于该对象,比如说Service服务组件、Receiver接收器、ContentProvier内容提供者等,他们都是用过Intent对象来启动的,当然启动的方法绝对不仅仅是startActivity(intent)这么简单了。对于不同的组件对象,其有着不同的启动方法。下面我给大家简单介绍一个使用自定义Action动作来完成的窗体Activity组件启动,通过这个案例抛砖引玉,主要让大家掌握基本的使用方法,今后可以举一反三,以此类推。

 

    首先说一下Action动作,在Android中我们的每个窗体组件对象都必须在AndroidManifest.xml文件中进行注册声明,而首启动的界面在声明中有一个<intent-filter>的标签,在该标签下有一个<action android:name=”xxxx”>的标签和一个<category android:name=”xxx”>的标签,如下图所示。

 

 

我们应该对这两个标签有一定的认知和了解。

 

代码分析:

    <action>标签的作用是指明该组件的核心动作类型,其android:name属性表示的是Android系统内置的标准动作,比如说 android.intent.action.MAIN 它告诉虚拟机该界面为应用程序的入口界面,为首启动标准动作。但让这个值也可以我们自己定义一个,好比给该组件起一个别名,从而也就形成了我们的自定义Action动作。

    <category>标签的作用是指明该组件的类型,其 android:name属性表示的是Android系统内置的标准类型模式,比如说 android.intent.category.LAUNCHER 它告诉戴尔维克虚拟机该组件为启动类型组件。

 

    那我们如何自己定义一个Action动作来完成组件的启动和调用呢?

 

    环节1:创建一个Activity窗体界面

 

    步骤1-1:在Android项目的res文件夹的layout文件夹中创建一个布局文件,布局里面只需放置一个TextView组件即可。具体代码如下:

 

    activity_second.xml

 

 

    步骤1-2:在Android项目的src文件夹下创建一个SecondActivity的窗体类文件,具体代码如下:

 

 

    环节二:在AndroidManifest.xml文件中注册并声明该窗体组件对象

 

    步骤2-1:在AndroidManifest.xml文件中注意对Activity的声明,具体代码如下:

 

 

特别注意的是我们要在注册的时候要自定义一个Action的名称,命名规范为 项目.包名称.组件名称 的基本格式。本例将Action定义为 myproject14.activity.second

 

环节三:在MainActivity的按钮单击事件中编写代码实现自定义Atiion的调用。

 

步骤3-1:在MainActivity的按钮单击事件处理中编写代码如下所示:

 

 

使用setAction(Action_Name)方法完成对启动组件名称的设置,ACTION_NAME为程序的全局性字符串常量,在先前有过声明,如下所示:

 

 

该字符串的值应该与AndroidManifest.xml文件中Action标签的名称保持一致。

 

本文章首先对自定义Action做一个简单的简介,希望大家关注我的后续内容。

 

分享到:
评论

相关推荐

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理...

    Android中AlarmManager+Notification实现定时通知提醒功能

    AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver)。本文将讲解一下如何使用AlarmManager实现定时提醒...

    Google Android SDK开发范例大全的目录

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——使用ContentResolver-p82 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件...

    Google+Android+SDK开发范例大全

    6.5 通过短信发送email通知——BroadcastReceiver与Intent整合 6.6 手机拨接状态——PhoneStateListener之onCallStateChanged 6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源...

    Google Android sdk 开发范例大全 部分章节代码

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——使用ContentResolver-p82 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件...

    Google Android SDK 开发范例大全01

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——使用ContentResolver-p82 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件...

    Google Android SDK 开发范例大全02

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——使用ContentResolver-p82 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件...

    Google Android SDK开发范例大全(完整版)

    5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理...

    android开发demo集合

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

    android初学者入门项目

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

    疯狂Android讲义源码

     10.1.3 绑定本地Service并与之  通信 377  10.1.4 Service的生命周期 381  10.2 跨进程调用Service  (AIDL服务) 382  10.2.1 AIDL服务简介 382  10.2.2 创建AIDL文件 383  10.2.3 将接口暴露给客户端 383...

    疯狂Android讲义.part2

    10.1.3 绑定本地Service并与之 通信 377 10.1.4 Service的生命周期 381 10.2 跨进程调用Service (AIDL服务) 382 10.2.1 AIDL服务简介 382 10.2.2 创建AIDL文件 383 10.2.3 将接口暴露给客户端 383 10.2.4 客户端...

    疯狂Android讲义.part1

    10.1.3 绑定本地Service并与之 通信 377 10.1.4 Service的生命周期 381 10.2 跨进程调用Service (AIDL服务) 382 10.2.1 AIDL服务简介 382 10.2.2 创建AIDL文件 383 10.2.3 将接口暴露给客户端 383 10.2.4 客户端...

    Android实例代码

    Action、Category属性与intent-filter配置; Data、Type属性与intent-filter配置; Extra属性; 5.3、使用Intent创建Tab页面: 第6章、Android应用的资源 6.1、资源的类型及存储方式: 6.2、使用字符串、颜色、...

Global site tag (gtag.js) - Google Analytics