MobileReceiver.java
public class MobileReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent myIntent = new Intent();
myIntent.setAction("android.intent.service.TASKSERVICE");
context.startService(myIntent);
}
}
}
ToDoTaskService.java
public class ToDoTaskService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Intent intent = new Intent(this, ToDoTaskActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction("android.intent.action.TASK");
if(MainActivity.m_NotificationManager == null){
MainActivity.m_NotificationManager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE);
}
MainActivity.setNotiActivity(MainActivity.taskName, MainActivity.TO_DO_TASK,android.R.drawable.presence_online, "您有代办任务...", "您有3个未审批任务...", intent, this.getApplicationContext(), false);
super.onCreate();
}
}
<receiver android:name=".receiver.MobileReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
<service android:enabled="true" android:name=".service.ToDoTaskService">
<intent-filter>
<action android:name="android.intent.service.TASKSERVICE"></action>
</intent-filter>
</service>
public static void setNotiActivity(String str,int nID,int iconId, String info ,String content,Class<? extends Activity> activity,Context context, boolean sound){
Intent notifyIntent = new Intent(context,activity);
notifyIntent.setFlags( Intent.FLAG_ACTIVITY_SINGLE_TOP);
setNotiActivity(str,nID,iconId,info,content,notifyIntent,context,sound);
}
public static void setNotiActivity(String str,int nID,int iconId, String info ,String content,Intent intent,Context context, boolean sound){
PendingIntent appIntent=PendingIntent.getActivity(context,0,intent,0);
setNotiType(str,nID,iconId,info,content,appIntent,context,sound);
}
public static void setNotiService(String str,int nID,int iconId, String info ,String content,Intent intent,Context context, boolean sound){
PendingIntent appIntent=PendingIntent.getService(context,0,intent,0);
setNotiType(str,nID,iconId,info,content,appIntent,context,sound);
}
public static void removeNoti(String str,int nID){
m_NotificationManager.cancel(str, nID);
}
public static void setNotiType(String str,int nID,int iconId, String info ,String content,PendingIntent appIntent , Context context, boolean sound){
Notification myNoti=new Notification();
//禁止用户清除通知
myNoti.flags = Notification.FLAG_NO_CLEAR;
myNoti.icon=iconId;
myNoti.tickerText=content;
if(sound){
myNoti.defaults=Notification.DEFAULT_SOUND;
}
myNoti.setLatestEventInfo(context,info,content,appIntent);
m_NotificationManager.notify(str,nID,myNoti);
}
分享到:
相关推荐
在Android开发中,"服务+广播接收+通知栏+通知栏样式"是构建高效、交互式应用程序的关键组件。本文将详细解析这些概念及其在实际应用中的作用。 首先,我们来了解**服务(Service)**。在Android系统中,服务是一种在...
如果你的服务需要消耗大量资源或者长时间运行,强烈建议使用前台服务,因为它会在通知栏显示一个通知,告知用户有应用正在后台运行,防止系统因资源限制而意外停止服务。通过`startForeground()`方法可以将服务设置...
android service Notification ...安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。BroadcastReceiver轮询广播
以下为程序启动流程: 1.开机启动AlarmService 2.AlarmActivity一秒后发送一条系统广播 ...5.单击消息,取消通知栏信息 6.但程序关闭时,单击消息,重启程序 小知识:BroadCast、Service、Notification,初学者适用
这会在通知栏显示一个通知,告知用户应用正在后台运行。 9. **源码分析**:DEMO中的源码应该包含了创建BroadcastReceiver、配置Service、处理ACTION_BOOT_COMPLETED广播以及启动其他APK的逻辑。通过阅读和理解这...
前台服务会在通知栏显示一个通知,表明服务正在运行,从而使得系统将其视为用户当前活动的一部分,减少被系统清理的可能性。要创建一个前台服务,需要调用`startForeground()`方法,并提供一个通知。 在学习和使用...
前台Service会显示通知栏图标,提醒用户服务正在运行,避免系统因优化而杀死Service。 6. **Service的线程处理** - 默认情况下,Service在主线程中运行,不应执行耗时操作,否则可能导致ANR(Application Not ...
例如,我们可以创建一个BroadcastReceiver来监听系统的开机广播,从而实现应用的开机自启动设置。对于音量设置,BroadcastReceiver可以监听音量键事件,动态调整应用程序的声音设置。 `Service`则是一种在后台运行...
广播是Android中的一种全局事件通知机制,当系统或应用触发特定事件(如开机、网络状态变化、接收到短信等)时,会发送广播意图(Intent)。所有注册了相应BroadcastReceiver的程序都可以接收并处理这些广播。 广播...
在提供的压缩包文件"WZWBroadcast"中,可能包含了实现上述功能的示例代码,包括BroadcastReceiver的实现、IntentFilter的配置以及通知栏的展示。开发者可以通过学习和分析这些代码,更深入地理解BroadcastReceiver的...
此外,一些定制ROM甚至取消了开机广播,以降低应用间的唤醒。 2. **白色保活** 白色保活是指通过启动前台Service来保持进程活跃。前台Service会显示一个通知,让用户知道应用正在后台运行。这种方法虽然明显,但...
此外,它还会启动SystemUI,这是用户与系统交互的主要界面,包含了通知栏、快速设置等元素。 一旦这些基础服务准备就绪,SystemServer会启动第一个用户界面——Launcher,也就是桌面应用,让用户可以开始使用设备。...
4. **查看通知栏**:如果服务成功启动,通常会在通知栏显示相关的通知。这是服务运行的一种常见反馈机制,开发者可以借此确认服务是否按预期工作。 标签“Java”表明这个项目是使用Java语言编写的,Java是Android...
7. **通知栏通知**:当闹钟响起时,通常会在通知栏显示一个通知,用户可以通过点击它来关闭闹钟或设置其他操作。这需要对NotificationCompat类的使用有所了解。 8. **多媒体播放**:为了播放闹钟音效,需要了解如何...
6. **BroadcastReceiver**:广播接收器用于监听系统或自定义广播事件,比如网络状态改变、开机启动等。熟悉BroadcastReceiver的注册与使用,可以让你的应用在特定条件下做出响应。 7. **AsyncTask**与线程管理:...
7. **Notification**: 当闹钟触发时,应用通常会通过通知栏提醒用户。`NotificationCompat.Builder`可以帮助你创建并发送通知,可以包含标题、消息、图标,甚至可以添加操作按钮。 8. **Service**: 虽然广播接收器...
应用可以发送通知,并配置其在通知栏和/或锁屏上显示,甚至创建可扩展的通知,让用户可以直接在通知上进行操作。 7. **权限管理**:如果需要访问用户的个人数据或者在后台运行,应用可能需要请求相应的权限,如`...
**Broadcast Receiver** 是Android系统广播事件的接收者,它可以监听并响应系统或应用发出的各种广播事件,如设备开机、网络状态变化等。Broadcast Receiver可以在AndroidManifest.xml中静态注册,也可以在代码中...
BroadcastReceiver允许应用接收系统广播事件,如设备开机、网络状态改变等,从而实现相应的响应。 七、Content Provider Content Provider是Android中用于共享数据的组件,它可以使得应用的数据对其他应用可见,...
8. **通知机制**:当闹钟触发时,通常会通过NotificationCompat.Builder创建一个通知,显示在状态栏上,提醒用户。通知可以包含文本、图标、声音和振动等元素。 9. **设置与保存**:用户设定的闹钟参数需要持久化...