应用开机启动

1. 原理

在Android系统启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED”。我们要做的就是写一个广播接收器BroadcastReceiver,广播接收器中写你启动的Activity或者Service等的代码,然后静态注册这个广播接收器,添加BOOT_COMPLETED这个action,当然,别忘记添加相应的权限。完成上述步骤之后,当系统开机发出系统广播 ACTION_BOOT_COMPLETED的时候,我们的程序就会“捕捉”到这个广播,然后执行我们广播中的代码,启动我们的Activity或者service等。

2. 具体实现

(1) 添加权限:AndroidManifest.xml中加入权限

//开机启动

(2) 自定义BootBroadcastReceiver类:继承自BroadcastReceiver 并重写onReceive()方法

package com.jack.workticket.service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.jack.workticket.LoginActivity;

/** 
* Created by liy on 2017-04-13. 
*/
public class BootBroadcastReceiver extends BroadcastReceiver {   

 /**    
 *实现开机自动打开软件并运行   
 */    
@Override    
public void onReceive(Context context, Intent intent) {        
  Log.d("BootReceiver.onReceive: ", intent.getAction());            
   //LoginActivity就是开机显示的界面       
   Intent mBootIntent = new Intent(context, LoginActivity.class);       
   //下面这句话必须加上才能实现开机自动运行app
   mBootIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);       
   context.startActivity(mBootIntent);            
  }

}

(3) 静态注册广播接收器



      
            
             
             
             
      

你可能感兴趣的:(应用开机启动)