美文网首页
前台服务

前台服务

作者: 山岭巨人郭敬明 | 来源:发表于2016-12-08 22:02 被阅读0次
public class MyService extends Service {    
@Nullable    
@Override    
public IBinder onBind(Intent intent) {        
return null;   
 }   
 @Override    
public int onStartCommand(Intent intent, int flags, int startId) {        
NotificationCompat.Builder builder=new NotificationCompat.Builder(MyService.this);        
builder.setSmallIcon(R.mipmap.ic_launcher)                
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))               
 .setTicker("来信息了")                
.setContentTitle("这是标题")                
.setContentText("这是内容")                
.setWhen(System.currentTimeMillis())                
.setSubText("这是SubText");        
Intent intent1=new Intent(MyService.this,Three.class);        
/**        
 * 首先发送了一条Notification到通知栏上,         
* 然后这时,退出程序,即主页面已经不存在了,这时我们去点击Notification,         
* 跳转到指定界面,然后我们按下Back键,发现直接回到系统界面而不是程序主界面。        
 * 现在大多数android应用都是在通知栏中如果有Notification通知的话,点击它,         
* 然后会直接跳转到对应的应用程序的某个界面,这时如果回退,会返回到该应用程序的主界面,         
* 而不是系统的主界面。所以用上面这种PendingIntent的做法达不到目的。这里我们使用TaskStackBuilder来做。         
*/        
TaskStackBuilder builder1=TaskStackBuilder.create(MyService.this);        
builder1.addParentStack(Three.class);        
builder1.addNextIntent(intent1);        
PendingIntent pendingIntent=builder1.getPendingIntent(1,PendingIntent.FLAG_UPDATE_CURRENT);        
//如果单纯的点击跳转到某个页面,用下面这个PendingIntent就可以        
//PendingIntent pendingIntent= PendingIntent.getActivity(MyService.this,1,intent1,PendingIntent.FLAG_UPDATE_CURRENT);        
builder.setContentIntent(pendingIntent);        
Notification notification=builder.build();        
//启动前台Notification        
startForeground(100,notification);        
return super.onStartCommand(intent, flags, startId);    
}   
 @Override    
public void onDestroy() {        
super.onDestroy();       
 //取消前台Notification用这个方法        
stopForeground(true);    }}

例如点击通知跳转到Three.class页面,点击返回时回退到Second.class,需要添加

<activity    
android:name=".Three"   
//添加parentActivityName属性
 android:parentActivityName=".Second" />

相关文章

  • Android 服务的限制

    服务的分类 Google官网将Android服务分为了三种,前台服务,后台服务和绑定服务: 前台 前台服务执行一些...

  • 前台服务

    例如点击通知跳转到Three.class页面,点击返回时回退到Second.class,需要添加

  • android前台服务以及通知

    什么是前台服务 前台服务是那些被认为用户知道(用户认可所认可)且在系统内存不足的时候不允许系统杀死的服务。前台服务...

  • Android通知栏前台服务

    一、前台服务的简单介绍 前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态...

  • Android通知栏前台服务

    一、前台服务的简单介绍 前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务。前台服务必须给状态...

  • APP开发实战69-前台服务

    17.4前台服务 前台服务是被认为是用户已知的正在运行的服务,当系统需要释放内存时不会优先杀掉该进程。前台进程必须...

  • 【Android】Service前台服务的使用

    1.什么是前台服务 前台服务是那些被认为用户知道(用户所认可的)且在系统内存不足的时候不允许系统杀死的服务。前台服...

  • Android使用前台服务

    Android使用前台服务和普通服务在代码上的区别也就是一个Notification,代码如下: 要从前台删除服务...

  • 开启前台服务

    这两天开始做一个音乐播放器,慢慢完善功能,打算把遇到的一些问题记下来,故对代码没有什么解释。。希望读者能有所收获。...

  • 开启前台服务

    我就是想做个笔记而已,给自己看看而已 第一步:面向Android 9(API级别28)或更高版本并使用前台服务的应...

网友评论

      本文标题:前台服务

      本文链接:https://www.haomeiwen.com/subject/pnosmttx.html