`

BroadcastReceiver开机启动Service,并在service中启动Notification

 
阅读更多

1.AndroidMainfest.xml 配置:接收开机广播

        <receiver android:name="BootBroadcastReceiver"> 
                <intent-filter> 
                    <action android:name="android.intent.action.BOOT_COMPLETED"></action> 
                    <category android:name="android.intent.category.LAUNCHER" /> 
                </intent-filter> 
        </receiver> 

 2.BootBroadcastReceiver

public class BootBroadcastReceiver extends BroadcastReceiver{
	@Override 
    public void onReceive(Context context, Intent intent) { 
        Log.e("TAG", "开机自动服务自动启动....."); 
        
      //后边的XXX.class就是要启动的服务 
        Intent serviceIntent = new Intent(context, MyGpsService.class);          
        context.startService(serviceIntent);          
    }  
}

 3. MyGpsService

	protected void showNotification()
    {
        CharSequence from = "IM";
        CharSequence message = "IM start up";
        
		Intent intent = new Intent();
		ComponentName componentName = new ComponentName("com.lixueli", 
			"com.lixueli.Test");
		intent.setComponent(componentName);
		intent.setAction("android.intent.action.MAIN");
		intent.addCategory("android.intent.category.LAUNCHER");
		intent.addFlags(Notification.FLAG_ONGOING_EVENT);
		
        // The PendingIntent to launch our activity if the user selects this notification
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
        // construct the Notification object.
        Notification notif = new Notification(R.drawable.ic_launcher, "IMM Still run background!",
                System.currentTimeMillis());
        notif.flags = Notification.FLAG_ONGOING_EVENT ; 
        notif.setLatestEventInfo(this, from, message, contentIntent);
        
        // look up the notification manager service
        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        nm.notify(R.string.app_name, notif);
    }
 
0
0
分享到:
评论
1 楼 jwsong 2012-08-23  
请问,开机启动Service后,Service里获取NotificationManager出错,返回空指针。这个怎么解决呢?

相关推荐

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

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

    Android应用开机自动启动

    - 使用模拟器或真机进行测试时,需要先手动关闭应用,并在设置中允许应用开机启动。 - 测试开机启动功能,通常需要重启设备来验证效果。 - 注意,部分手机厂商可能有自己的安全策略,限制应用的开机启动,需要在厂商...

    Android 开机自动启动一个程序

    在Android系统中,实现开机自动启动一个程序,通常涉及到服务(Service)、BroadcastReceiver(广播接收器)以及AlarmManager等组件的使用。以下将详细介绍如何在Android应用中设置开机启动一个Activity并发送通知。 1....

    开机自启,服务,广播,notification的联合使用

    在开机自启的应用场景中,BroadcastReceiver是关键,因为它可以监听到设备启动完成的广播,然后启动其他组件。 4. **Notification**:通知是Android系统提供的一种用户界面元素,用于向用户传达应用的重要信息,...

    android broadcastReceiver 代码示例

    在本教程中,我们将深入探讨如何在Android中实现BroadcastReceiver,以及其在开机启动、发送通知和广播实现方式等方面的应用。 首先,我们创建一个简单的BroadcastReceiver。在AndroidManifest.xml文件中声明...

    Android应用源码之后台保持运行,开机后自动启动设定好的APK的DEMO.zip

    在Android应用开发中,有时我们需要实现应用在后台持续运行或者在设备开机时自动启动特定的APK。这个"Android应用源码之后台保持运行,开机后自动启动设定好的APK的DEMO.zip"是一个很好的学习资源,它涵盖了几个关键...

    安卓Android源码——后台保持运行,开机后自动启动设定好的APK的DEMO.zip

    在安卓(Android)系统中,实现应用在后台保持运行并能开机自启动是开发者经常会遇到的需求,这通常涉及到服务(Service)和广播接收器(BroadcastReceiver)等关键组件的使用。下面将详细讲解如何实现这一功能。 ...

    安卓广播broadcastreceiver

    在Android系统中,广播BroadcastReceiver是一种非常重要的组件,它允许应用程序在不运行的情况下接收和响应系统或应用事件。本文将详细解析"安卓广播BroadcastReceiver"的相关知识点,包括静态注册、动态注册以及...

    BroadcastReceiver.rar

    在Android开发中,BroadcastReceiver(广播接收者)是一种重要的组件,用于监听系统或应用程序广播事件并作出响应。本文将深入探讨如何使用Delphi这一高级编程语言,在Android平台上创建BroadcastReceiver来监听并...

    android app 自启动

    在`AndroidManifest.xml`中注册一个监听开机广播的接收器,当设备启动完成后,系统会发送ACTION_BOOT_COMPLETED广播,接收器可以在这个时机启动应用。 然而,需要注意的是,由于自启动应用可能消耗过多资源,从...

    android系统服务大全与广播大全

    - 在AndroidManifest.xml中静态注册BroadcastReceiver,这样在应用程序启动时,BroadcastReceiver就会自动激活。 - 动态注册BroadcastReceiver,在代码中创建并注册,仅在需要时启用,这样可以提高效率并减少内存...

    android各组件详解

    Service虽然没有界面,但可以通过Notification与用户交互,提醒用户Service正在运行。 **BroadcastReceiver**: BroadcastReceiver是接收广播事件的组件。Android系统会发送各种广播消息,如设备开机、网络连接变化...

    第7章AndroidBroadcastReceiver组件.pptx

    AlarmManager是Android系统提供的定时任务管理服务,可以安排应用在指定的时间点或周期性地执行任务,例如发送广播、启动Service等。使用`AlarmManager.set()`或`AlarmManager.setRepeating()`方法设置闹钟。 综上...

    android 经典代码例子

    开发者需要在Manifest文件中声明所需的权限,并在运行时根据Android版本获取用户的许可。 12. **通知(Notification)**:通知是向用户展示重要信息的方式,即使应用不在前台运行。通过NotificationManager和...

    android简易闹钟

    这个接收器监听特定的Intent(如ACTION_BOOT_COMPLETED或ALARM_SERVICE),并在接收到广播时执行相应的操作,如播放铃声、显示通知等。 3. **AlarmManager**: `AlarmManager`是Android系统服务,用于安排在未来某个...

    android学习笔记

    在上述代码中,BootReceiver继承BroadcastReceiver,并在onReceive()中判断是否为开机完成动作,然后启动Test类的Activity。 2. **Notification的使用**:Notification是Android中用于在状态栏显示提醒信息的机制。...

    Android中文API

    4. **Intent**:Intent用于在组件之间传递消息,可以启动或绑定新的Activity,也可以启动Service。它是Android系统中实现组件间通信的关键。 5. **Fragment**:Fragment是Android 3.0引入的新特性,可以在Activity...

    MyKeepLiveDemo.zip

    3. **BroadcastReceiver**:注册广播接收器来监听特定系统事件,如设备开机、网络状态变化等,当收到这些广播时,应用可以自动启动。 4. **前台通知(Foreground Notification)**:通过显示一个持久的前台通知,...

    安卓demo注册内容显示到桌面

    4. **BroadcastReceiver**:对于响应系统事件(例如,开机、接收到特定广播)并在桌面显示内容,可以注册BroadcastReceiver。用户可能会设置特定的广播触发条件,以在特定时刻更新桌面内容。 5. **Widgets**:...

Global site tag (gtag.js) - Google Analytics