Android 开机自动启动服务

在前面的文章中提到了remote service 的创建过程,现在我们要让它开机自动启动

 

1.在前面代码的基础上添加 RemoteServiceBootReceiver.java ,实现一个intent的receiver

package com.fly; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class RemoteServiceBootReceiver extends BroadcastReceiver { private static final String TAG = "U0fly RemoteServiceBootReceiver"; static final String ACTION = "android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context arg0, Intent arg1) { Log.d(TAG, "Boot completed"); // TODO Auto-generated method stub if (arg1.getAction().equals(ACTION)) { // service Intent myintent = new Intent(arg0, RemoteService.class); myintent.setAction("com.fly.RemoteService"); arg0.startService(myintent); } } }

2.在AndroidManifast.xml中添加权限,并注册一个receiver

 

 

3.下面是一个简单实例, 完成开机启动Activity的功能:

运行效果:

代码:

 

 

BootSayHello.java

package com.fly; import android.app.Activity; import android.os.Bundle; public class BootSayHello extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }

BootBroadcastReceiver.java

package com.fly; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootBroadcastReceiver extends BroadcastReceiver { static final String ACTION = "android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals(ACTION)) { Intent sayHelloIntent = new Intent(context, BootSayHello.class); sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(sayHelloIntent); } } }

 

AndroidManifest.xml

 

你可能感兴趣的:(Android,android,action,application,encoding,string,class)