首先做一个监听器:



public class StartBroadcastReceiver extends BroadcastReceiver{private static final String ACTION = "android.intent.action.BOOT_COMPLETED";public void onReceive(Context context, Intent intent) {                if (intent.getAction().equals(ACTION)){                        Intent i= new Intent(Intent.ACTION_RUN);                        i.setClass(context, TService.class);                        context.startService(i);                }        }        }

然后再做一个service:

package com.testService;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.Handler;import android.os.IBinder;import android.util.Log;public class TService extends Service {        /**         * 创建Handler对象,作为进程传递postDelayed之用         */        private Handler objHandler = new Handler();        private int intCounter = 0;        private static final String TAG = "TService";        private NotificationManager notificationManager;        private Runnable mTasks = new Runnable() {                public void run() {                        intCounter++;                        Log.i("HIPPO", "Counter:" + Integer.toString(intCounter));                        objHandler.postDelayed(mTasks, 1000);                }        };        public void onCreate() {                Log.d(TAG, "============> TService.onCreate");                notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);                showNotification();                super.onCreate();        }                public void onStart(Intent intent, int startId) {                Log.i(TAG, "============> TService.onStart");                objHandler.postDelayed(mTasks, 1000);                super.onStart(intent, startId);        }        public IBinder onBind(Intent intent) {                Log.i(TAG, "============> TService.onBind");                return null;        }        public class LocalBinder extends Binder {                public TService getService() {                        return TService.this;                }        }        public boolean onUnbind(Intent intent) {                Log.i(TAG, "============> TService.onUnbind");                return false;        }        public void onRebind(Intent intent) {                Log.i(TAG, "============> TService.onRebind");        }        public void onDestroy() {                Log.i(TAG, "============> TService.onDestroy");                notificationManager.cancel(R.string.service_start);                objHandler.removeCallbacks(mTasks);                super.onDestroy();        }        private void showNotification() {                Notification notification = new Notification(R.drawable.icon,                                "SERVICE START", System.currentTimeMillis());                Intent intent = new Intent(this, testService.class);                intent.putExtra("FLG", 1);                PendingIntent contentIntent = PendingIntent.getActivity(this, 0,                                intent, 0);                notification.setLatestEventInfo(this, "SERVICE", "SERVICE START",                                contentIntent);                notificationManager.notify(R.string.service_start, notification);        }}

再做一个主程序:

package com.testService;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class testService extends Activity {                private Button button01;        private Button button02;        private int flg;        private Intent tsIntent;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                        setContentView(R.layout.main);        button01 = (Button)findViewById(R.id.Button01);        button02 = (Button)findViewById(R.id.Button02);                tsIntent = this.getIntent();        Bundle bundle = tsIntent.getExtras();                if (bundle == null){            flg = 1;            DisplayToast(this,"Service Start",2);            startService();            finish();        }else{                DisplayToast(this,"Service Stop",2);                stopService();                finish();        }                button01.setOnClickListener(Listener01);        button02.setOnClickListener(Listener02);            }        Button.OnClickListener Listener01 = new OnClickListener(){                @Override                public void onClick(View v) {                        // TODO Auto-generated method stub                        startService();                }                };        Button.OnClickListener Listener02 = new OnClickListener(){                @Override                public void onClick(View v) {                        // TODO Auto-generated method stub                        stopService();                }                };            private void startService() {                Intent i = new Intent(testService.this, TService.class);                i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                this.startService(i);        }            private void stopService() {                Intent i = new Intent(testService.this, TService.class);                this.stopService(i);        }        public static void DisplayToast(Context context , String str , int time){                if (time == 1){                        //短时间显示Toast                        Toast.makeText(context, str, Toast.LENGTH_SHORT).show();                }else if (time == 2){                        //长时间显示Toast                        Toast.makeText(context, str, Toast.LENGTH_LONG).show();                }        }}

最后在androidmenfest.xml中注册一下接受广播器和服务以及开通权限:
接收广播器:

 <receiver android:name=".StartBroadcastReceiver">            <intent-filter>                <action android:name="android.intent.action.BOOT_COMPLETED"/>            </intent-filter>        </receiver>

服务:
        <service android:name=".TService"            android:label="TService"            android:icon="@drawable/icon"            android:enabled="true"            android:exported="true"            android:process=":remote">        </service>

注册权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>



更多相关文章

  1. Android 运行时权限
  2. 如何获取android root 启动权限
  3. Android权限问题整理
  4. Android权限列表permission说明 [轉載]
  5. Android P签名机制和系统权限
  6. android 判断sdcard是否存在,以及写入权限

随机推荐

  1. Android(安卓)user defined service hand
  2. ANDROID对文件的操作
  3. Android UI简介
  4. Android自定义EditText,实现分割输入内容
  5. Android开发指导文档(译)--content provide
  6. Android电话系统之GSMCallTracker
  7. android 问题汇总系列之三
  8. 15个重要的Android代码
  9. 黑马2016年JavaEE第28期就业班
  10. R.Layout.activity_main cannot be resol