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)是三个核心组件,它们各自承担着不同的职责,同时在特定场景下相互配合,为应用程序提供后台运行、事件监听和用户交互的...
android service Notification BroadcastReceiver Intent 安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。...
这个项目曾经是Coursera Android课程的作业: : 在这里回答以下问题: 如何动态注册和注销 BroadcastReceiver? 如何将意图过滤器添加到 BroadcastReceiver? 普通广播和有序广播有什么区别? 以及如何使用有序广播...
在这个"BroadcastReceiver使用demo"中,我们将深入探讨BroadcastReceiver的工作原理、如何创建与注册、以及如何发送和接收广播。以下是对BroadcastReceiver的详细说明: 一、BroadcastReceiver概述 ...
在BroadcastReceiver的`onReceive()`方法中,创建Notification并使用`NotificationManager`的`notify()`方法发送出去。 同时,对于多通道支持,Android Oreo (8.0) 引入了Notification Channel的概念,要求开发者为...
总的来说,这个项目展示了如何在Android中构建一个具有通知栏控制功能的音乐播放器,涵盖了`Notification`的创建和管理,以及`BroadcastReceiver`的使用,对于提升Android开发者在高级应用开发方面的能力非常有帮助...
9. 对于动态注册的 `BroadcastReceiver`,记得在不再需要接收广播时使用 `Context.unregisterReceiver()` 进行注销,以防止内存泄漏。 10. 为了测试 `BroadcastReceiver`,可以使用 `adb shell am broadcast` 命令...
本篇文章将详细阐述BroadcastReceiver的创建与使用步骤。 首先,广播在Android中是一种信息传递机制,它可以将消息发送到所有注册了相应Intent过滤器的BroadcastReceiver。BroadcastReceiver分为两种类型:静态注册...
在Android开发中,创建一个类似酷狗音乐那样的音乐播放器通知栏切歌栏效果,涉及到的关键技术主要包括Notification的使用和BroadcastReceiver的实现。下面将详细解释这两个知识点。 首先,Notification是Android...
在使用BroadcastReceiver时,需要注意权限管理,一些系统级别的广播可能需要在AndroidManifest.xml中声明相应的权限才能接收到。例如,如果要监听网络状态变化,需要添加`ACCESS_NETWORK_STATE`权限。 另外,从...
本测试代码着重展示了BroadcastReceiver的工作原理和使用方法。 在`Lesson_22_code.zip`和`Lesson_21_code.zip`这两个压缩包中,可能包含以下关键知识点: 1. **BroadcastReceiver注册**: - 静态注册:在...
#### 使用`BroadcastReceiver`注意事项 - **性能考虑**:由于`onReceive()`方法的执行时间受到限制(10秒),因此不宜在此方法中执行耗时操作,以免导致应用无响应。 - **权限管理**:根据广播类型的不同,可能需要...
总之,BroadcastReceiver是Android开发中的关键组件,通过合理使用不同类型的注册、广播类型,可以实现应用间的通信、监听系统事件等多种功能。在实际开发中,开发者应根据需求选择合适的注册方式和广播类型,以提高...
为了优化性能和用户体验,应合理使用`BroadcastReceiver`,避免在不必要的时候持续监听广播,因为这会消耗电池和系统资源。同时,针对Android系统版本的变化,如Android Oreo及以上版本对后台服务和广播的限制,可能...
在这个"BroadcastReceiver学习(01)"中,我们将深入探讨BroadcastReceiver的基本概念、注册方式以及如何创建和使用。 ### 一、BroadcastReceiver基本概念 BroadcastReceiver是一种服务组件,它能够接收并响应系统...
由于BroadcastReceiver没有自己的用户界面,但可以在接收到广播后启动Activity、显示Notification或启动Service来与用户交互或进行后台处理。 总的来说,BroadcastReceiver是Android系统中实现异步通信和事件驱动...
至于“状态栏通知”,这是Android中一种常见的用户交互方式,通常与BroadcastReceiver或Service结合使用。例如,当Service在后台执行重要任务时,可以通过发送状态栏通知来告知用户当前的进程,增强用户体验。 ...
"BroadcastReceiverDemo"是一个针对Android开发者的教学项目,旨在教授如何在Android系统中使用BroadcastReceiver这一核心组件。BroadcastReceiver是Android中的一个重要概念,它允许应用程序响应系统或其它应用发送...
了解并熟练掌握BroadcastReceiver的使用,对于Android开发来说至关重要,因为它可以让你的应用与系统和用户进行更深度的交互,提高用户体验。在实际开发中,结合静态和动态注册,根据需求选择合适的策略,能够更好地...