Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 開機自啟動示例程序

Android 開機自啟動示例程序

編輯:關於Android編程

Android 開機自啟動示例程序。使用廣播方式接受,采用Android自帶存儲SharedPreferences存儲開機自啟動的設置。

本文源碼:點擊

1、先加上權限

 

    

 

2、需要的廣播接收注冊(如果還要啟動服務,也先注冊)

 

 


 

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) {
		// TODO Auto-generated method stub
		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) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

 

6、簡單界面實現圖

 

data-cke-saved-src=https://www.android5.online/Android/UploadFiles_5356/201702/2017022313592563.png

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved