`

BroadcastReceiver and Notification 搭配使用

阅读更多
MainActivity :
package com.amaker.zzl;
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	MyReceiver r = new MyReceiver();
    private Button btn_send;
    public static final String MY_ACTION = "com.amaker.zzl.action";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        btn_send = (Button) findViewById(R.id.send_button1);
        
        btn_send.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//发出一个广播,指定一个action
				sendBroadcast(new Intent(MY_ACTION));
			}
		});
    }
    //在onResume这个方法里面注册广播接收器
    //这里采用动态方法来注册广播接收器
    @Override
    protected void onResume() {
    	super.onResume();
    	IntentFilter f = new IntentFilter();
    	f.addAction(MY_ACTION);
    	registerReceiver(r, f);
    }
  //在onPause这个方法里取消注册
	@Override
	protected void onPause() {
		super.onPause();
		unregisterReceiver(r);
	}
		
}



MyReceiver:
package com.amaker.zzl;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyReceiver extends BroadcastReceiver{
	private NotificationManager nm;
	private Notification n;
	public static final int ID = 1;
	/**
	 * 广播接收器收到广播后,发出一个通知
	 * ZZL
	 */
	@Override
	public void onReceive(Context context, Intent intent) {
		String service = context.NOTIFICATION_SERVICE;
		nm = (NotificationManager) context.getSystemService(service);
		n = new Notification();
		//定义通知的一些属性
		n.icon = R.drawable.icon;
		n.tickerText = "tickerText...";
		n.when = System.currentTimeMillis();
		PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
		n.setLatestEventInfo(context, "通知标题", "具体的通知内容", contentIntent);
		
		//利用通知管理器把封装好的通知发出
		nm.notify(ID, n);
	}

}


main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<Button
		android:text="SEND"
		android:id="@+id/send_button1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" />
</LinearLayout>
分享到:
评论

相关推荐

    android服务自启动Service以及BroadcastReceiver和Notification.zip

    在Android开发中,服务(Service)、广播接收器(BroadcastReceiver)和通知(Notification)是三个核心组件,它们各自承担着不同的职责,同时在特定场景下相互配合,为应用程序提供后台运行、事件监听和用户交互的...

    android服务自启动Service以及BroadcastReceiver和Notification

    android service Notification BroadcastReceiver Intent 安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。...

    Android_BroadcastReceiver_Notification:该项目是 Android 中 BroadcastReceiver 和 Notification 的演示应用程序

    这个项目曾经是Coursera Android课程的作业: : 在这里回答以下问题: 如何动态注册和注销 BroadcastReceiver? 如何将意图过滤器添加到 BroadcastReceiver? 普通广播和有序广播有什么区别? 以及如何使用有序广播...

    BroadcastReceiver使用demo

    在这个"BroadcastReceiver使用demo"中,我们将深入探讨BroadcastReceiver的工作原理、如何创建与注册、以及如何发送和接收广播。以下是对BroadcastReceiver的详细说明: 一、BroadcastReceiver概述 ...

    notification各种使用

    在BroadcastReceiver的`onReceive()`方法中,创建Notification并使用`NotificationManager`的`notify()`方法发送出去。 同时,对于多通道支持,Android Oreo (8.0) 引入了Notification Channel的概念,要求开发者为...

    音乐播放器消息通知栏切歌栏效果(Notification+BroadcastReceiver).zip

    总的来说,这个项目展示了如何在Android中构建一个具有通知栏控制功能的音乐播放器,涵盖了`Notification`的创建和管理,以及`BroadcastReceiver`的使用,对于提升Android开发者在高级应用开发方面的能力非常有帮助...

    Android \BroadCastReceiver 简介

    9. 对于动态注册的 `BroadcastReceiver`,记得在不再需要接收广播时使用 `Context.unregisterReceiver()` 进行注销,以防止内存泄漏。 10. 为了测试 `BroadcastReceiver`,可以使用 `adb shell am broadcast` 命令...

    Android中BroadcastReceiver的创建与使用步骤.pdf

    本篇文章将详细阐述BroadcastReceiver的创建与使用步骤。 首先,广播在Android中是一种信息传递机制,它可以将消息发送到所有注册了相应Intent过滤器的BroadcastReceiver。BroadcastReceiver分为两种类型:静态注册...

    音乐播放器消息通知栏切歌栏效果(Notification+BroadcastReceiver)

    在Android开发中,创建一个类似酷狗音乐那样的音乐播放器通知栏切歌栏效果,涉及到的关键技术主要包括Notification的使用和BroadcastReceiver的实现。下面将详细解释这两个知识点。 首先,Notification是Android...

    BroadcastReceiver

    在使用BroadcastReceiver时,需要注意权限管理,一些系统级别的广播可能需要在AndroidManifest.xml中声明相应的权限才能接收到。例如,如果要监听网络状态变化,需要添加`ACCESS_NETWORK_STATE`权限。 另外,从...

    android BroadcastReceiver相关测试代码

    本测试代码着重展示了BroadcastReceiver的工作原理和使用方法。 在`Lesson_22_code.zip`和`Lesson_21_code.zip`这两个压缩包中,可能包含以下关键知识点: 1. **BroadcastReceiver注册**: - 静态注册:在...

    broadcastReceiver

    #### 使用`BroadcastReceiver`注意事项 - **性能考虑**:由于`onReceive()`方法的执行时间受到限制(10秒),因此不宜在此方法中执行耗时操作,以免导致应用无响应。 - **权限管理**:根据广播类型的不同,可能需要...

    BroadcastReceiver使用Demo

    总之,BroadcastReceiver是Android开发中的关键组件,通过合理使用不同类型的注册、广播类型,可以实现应用间的通信、监听系统事件等多种功能。在实际开发中,开发者应根据需求选择合适的注册方式和广播类型,以提高...

    BroadCastReceiver

    为了优化性能和用户体验,应合理使用`BroadcastReceiver`,避免在不必要的时候持续监听广播,因为这会消耗电池和系统资源。同时,针对Android系统版本的变化,如Android Oreo及以上版本对后台服务和广播的限制,可能...

    BroadcastReceiver学习(01)

    在这个"BroadcastReceiver学习(01)"中,我们将深入探讨BroadcastReceiver的基本概念、注册方式以及如何创建和使用。 ### 一、BroadcastReceiver基本概念 BroadcastReceiver是一种服务组件,它能够接收并响应系统...

    A0306广播BroadcastReceiver的使用1

    由于BroadcastReceiver没有自己的用户界面,但可以在接收到广播后启动Activity、显示Notification或启动Service来与用户交互或进行后台处理。 总的来说,BroadcastReceiver是Android系统中实现异步通信和事件驱动...

    BroadcastReceiver与Service的例子

    至于“状态栏通知”,这是Android中一种常见的用户交互方式,通常与BroadcastReceiver或Service结合使用。例如,当Service在后台执行重要任务时,可以通过发送状态栏通知来告知用户当前的进程,增强用户体验。 ...

    BroadcastReceiverDemo

    "BroadcastReceiverDemo"是一个针对Android开发者的教学项目,旨在教授如何在Android系统中使用BroadcastReceiver这一核心组件。BroadcastReceiver是Android中的一个重要概念,它允许应用程序响应系统或其它应用发送...

    安卓broadcastReceiver的使用

    了解并熟练掌握BroadcastReceiver的使用,对于Android开发来说至关重要,因为它可以让你的应用与系统和用户进行更深度的交互,提高用户体验。在实际开发中,结合静态和动态注册,根据需求选择合适的策略,能够更好地...

Global site tag (gtag.js) - Google Analytics