Android Service 前台

       Service几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是Service的系统优先级还是比较低的,当系统出现内存不足情况时,就有可能会回收掉正在后台运行的Service。

        如果你希望Service可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收,就可以考虑使用前台Service。       

       前台Service和普通Service最大的区别就在于,它会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。当然有时候你也可能不仅仅是为了防止Service被回收才使用前台Service,有些项目由于特殊的需求会要求必须使用前台Service。

 @Override  
    public void onCreate() {  
        super.onCreate();  
        Notification notification = new Notification(R.drawable.ic_launcher, "有通知到来", System.currentTimeMillis());  
        Intent notificationIntent = new Intent(this, MainActivity.class);  
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,  notificationIntent, 0);  
        notification.setLatestEventInfo(this, "这是通知的标题", "这是通知的内容",pendingIntent);  
        startForeground(1, notification);  
        Log.d(TAG, "onCreate() executed");  
    } 
       还有新的写法:
@Override  
    public void onCreate() {  
        super.onCreate();          
         PendingIntent pendingIntent = PendingIntent.getActivity(this,0,new Intent(this, MainActivity.class), 0);  
         // 通过Notification.Builder来创建通知,注意API Level  
         // API16之后才支持  
         Notification notify = new Notification.Builder(this)  
                 .setSmallIcon(R.drawable.ic_launcher)  
                 .setTicker("TickerText:" + "您有新短消息,请注意查收!")  
                 .setContentTitle("Notification Title")  
                 .setContentText("This is the notification message")  
                 .setContentIntent(pendingIntent).setNumber(1).build(); // 需要注意build()是在API  
                                                                         // level16及之后增加的,API11可以使用getNotificatin()来替代 
         startForeground(1, notify); 
         Log.d(TAG, "onCreate() executed");  
} 
       测试,两种方法都是可以的,只是第一种方法的函数已经不推荐使用了。当然,还有其它的方法来写,我们只要会第二种方法就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值