01.android设置应用开机启动

来源:互联网 发布:linux连不通数据库端口 编辑:程序博客网 时间:2024/05/01 00:14
1.添加权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
2.广播接收注册
 <!-- 监听开机启动 -->
    <receiver android:name="pad.longshine.evaluator.main.BootBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.HOME" />
        </intent-filter>
    </receiver>

3.code启动

public class BootBroadcastReceiver extends BroadcastReceiver {
private static final String action_boot="android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(action_boot)){
try {
Intent intentStart = new Intent(context,MainActivity.class);
intentStart.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentStart);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Android 开机自启动示例程序。使用广播方式接受,采用Android自带存储SharedPreferences存储开机自启动的设置。

1、先加上权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />  

2、需要的广播接收注册(如果还要启动服务,也先注册)

<!-- 开机自启动广播接受 -->  
<receiver android:name="com.example.autostart.AutoStartBroadcastReceiver" >  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>  
  
<!-- 开机自启动服务-->  
 <service android:name="com.example.autostart.AutoStartService"  
    android:label="AutoStartService"  
    android:enabled="true"  
    android:exported="true"  
    android:process=":remote">  
</service>

3、广播接收AutoStartBroadcastReceiver

package com.example.autostart;  
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.ContextWrapper;  
import android.content.Intent;  
import android.content.SharedPreferences;  
  
//开机自启动广播接受  
public class AutoStartBroadcastReceiver extends BroadcastReceiver {  
    private static final String ACTION = "android.intent.action.BOOT_COMPLETED";  
    private SharedPreferences mPreferences = null;  
    @Override  
    public void onReceive(Context context, Intent intent) {    
        mPreferences = context.getSharedPreferences("AutoStart",ContextWrapper.MODE_PRIVATE);  
        if (intent.getAction().equals(ACTION)) {                
            if (mPreferences.getBoolean("AddToAuto"false)) {                    
                //后边的XXX.class就是要启动的服务    
                Intent service = new Intent(context,AutoStartService.class);    
                context.startService(service);                      
                // 启动应用,参数为需要自动启动的应用的包名,只是启动app的activity的包名  
                Intent newIntent = context.getPackageManager().getLaunchIntentForPackage("com.example.autostart");  
                context.startActivity(newIntent);  
            }  
        }  
    }    
}  

4、如果需要启动一些服务再写(可选项)

如果程序需要启动一些必要的服务再写这个也可以,一般开机自启动只需要启动app的主activity。这里示范一下写服务。

package com.example.autostart;  
  
import android.app.Service;  
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.ContextWrapper;  
import android.content.Intent;  
import android.content.SharedPreferences;  
import android.os.IBinder;  
import android.util.Log;  
  
//开机自启动广播接受  
public class AutoStartService extends Service {    
    @Override  
    public IBinder onBind(Intent intent) {  
        return null;  
    }    
    @Override  
    public void onCreate(){  
       super.onCreate();  
       Log.d("TAG2","test service");  
    }  
}  

5、怎样使用这些配置MainActivity

package com.example.autostart;  
  
import android.os.Bundle;  
import android.app.Activity;  
import android.content.ContextWrapper;  
import android.content.SharedPreferences;  
import android.content.SharedPreferences.Editor;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.TextView;  
  
public class MainActivity extends Activity {  
  
    private SharedPreferences mPreferences = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);            
        mPreferences = getSharedPreferences("AutoStart",ContextWrapper.MODE_PRIVATE);  
        boolean bStart = mPreferences.getBoolean("AddToAuto"false);            
        final TextView textView1 = (TextView)findViewById(R.id.textView1);  
        if (bStart) {  
            textView1.setText("已打开开机自启动");  
        }else {  
            textView1.setText("已关闭开机自启动");  
        }  
          
        //打开  
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                Editor editor = mPreferences.edit();  
                editor.putBoolean("AddToAuto"true);  
                editor.commit();  
                textView1.setText("已打开开机自启动");                    
            }  
        });  
          
        //关闭  
        findViewById(R.id.button2).setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                Editor editor = mPreferences.edit();  
                editor.putBoolean("AddToAuto"false);  
                editor.commit();  
                textView1.setText("已关闭开机自启动");  
                  
            }  
        });      
    }  
  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        getMenuInflater().inflate(R.menu.activity_main, menu);  
        return true;  
    }    
}  




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 总留鼻涕水怎么办 流像水一样的鼻涕怎么办 出门忘记带洗面奶怎么办 一侧鼻子流清水怎么办 慢性肠胃炎犯了怎么办 儿子拉肚肚子疼怎么办 皮肤太容易过敏怎么办 过敏脸一直不好怎么办 脸上突然过敏怎么办急救 脸过敏发红疼怎么办 脸上突然过敏了怎么办 脸过敏总反复怎么办 用蜂蜜洗脸过敏怎么办 脸上涂蜂蜜过敏怎么办 孕晚期脸过敏怎么办 吃芒果脸过敏怎么办 脸上老反复过敏怎么办 用什么都过敏怎么办 脸上起过敏湿疹怎么办 脸上发湿疹过敏怎么办 感冒流鼻涕有痰怎么办 咳嗽流清水鼻涕怎么办 脸最近老是过敏怎么办 鼻炎脸特别疼怎么办 宝宝感冒一直流鼻涕怎么办 经常过敏的体质怎么办 一边鼻子堵了怎么办 鼻炎流清水鼻涕怎么办 鼻子总感觉堵塞怎么办 半边鼻子不通气怎么办 鼻炎感冒了鼻塞怎么办 左边鼻子不通气怎么办 婴儿鼻塞不通气怎么办 过敏性鼻炎一直打喷嚏怎么办 一只鼻子流鼻涕怎么办 一个鼻子不通气怎么办 夏天鼻子堵了怎么办 做完鼻子感冒了怎么办 鼻子不通流鼻涕打喷嚏怎么办 一岁半宝宝流鼻涕鼻塞怎么办 没有感昌流鼻涕怎么办