个例子实现的功能是:
1,安装程序后看的一个Activity程序界面,里面有个按钮,点击按钮就会启动一个Service服务,此时在设置程序管理里面会看的有个Activity和一个Service服务运行
2,如果手机关机重启,会触发你的程序里面的Service服务,当然,手机启动后是看不到你的程序界面。好比手机里面自带的闹钟功能,手机重启看不到闹钟设置界面
只是启动服务,时间到了,闹钟就好响铃提醒。
程序代码是:
首先要有一个用于开机启动的Activity,给你们的按钮设置OnClickListener();
复制代码 代码如下:
public class MainActivity extends Activity {
private button btnstarted = null;
public voID onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentVIEw(R.layout.main);
btnstarted = (button)findVIEwByID( R.ID.btnstarted);
btnstarted.setonClickListener(new OnClickListener() {
public voID onClick(VIEw v) {
Intent intent = new Intent(MainActivity.this,StartService.class);
startService(intent);
Toast.makeText(MainActivity.this,"服务启动成功",Toast.LENGTH_LONG).show();
}};}
}
我们要编写一个broadcastReceiver用以捕获ACTION_BOOT_COMPLETED这条广播,并在捕获之后启动我们要启动的服务StarServIE.class
复制代码 代码如下:
public class BootCompletedReceiver extends broadcastReceiver{
public voID onReceive(Context context,Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
Intent newIntent = new Intent(context,StartService.class);
context.startService(newIntent);
}
}
}
启动服务Service代码
复制代码 代码如下:
public class StartService extends Service{
//public static String PHONENO;
public class LocalBinder extends Binder{
StartThIEf getService(){
return StartService.this;
}
}
public IBinder onBind(Intent intent){
return mBinder;
}
private voID registerIntentReceiver(){
//此处添加启动服务要执行的 *** 作代码
}
public voID onStart(Intent intent,int startID){
super.onStart(intent,startID);
}
@OverrIDe
public voID onCreate() {
registerIntentReceiver();
}
}
用到的Main.xml,里面只有一个button,ID是btnstarted
复制代码 代码如下:
<?xml version="1.0" enCoding="utf-8"?>
<absoluteLayout
androID:ID="@+ID/absoluteLayout01"
androID:layout_wIDth="fill_parent"
androID:layout_height="fill_parent"
xmlns:androID="http://schemas.androID.com/apk/res/androID">
<button androID:layout_height="wrap_content"
androID:ID="@+ID/btnstarted"
androID:text="@string/started"
androID:layout_y="118dip"
androID:layout_wIDth="wrap_content"
androID:layout_x="56dip">
</button>
</absoluteLayout>
在AndroIDManifest.xml配置文件中注册我们的broadcastReceiver和服务Service
复制代码 代码如下:
<?xml version="1.0" enCoding="utf-8"?>
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"
package="com.thIEf" androID:versionCode="1"
androID:versionname="1.0">
<application androID:icon="@drawable/icon"
androID:label="@string/app_name">
<activity androID:name=".MainActivity"
androID:label="@string/app_name">
<intent-filter>
<action androID:name="androID.intent.action.MAIN" />
<category
androID:name="androID.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//注册服务
<service androID:name=".StartService"></service>
//为了获取开机启动这个动作,必须注册加上androID.intent.action.BOOT_COMPLETED
<receiver androID:name=".BootCompletedReceiver">
<intent-filter>
<action androID:name="androID.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
</receiver>
</application>
获取开机启动动作的权限permission
<uses-permission androID:name="androID.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
</manifest>
以上是内存溢出为你收集整理的android开发教程之开机启动服务service示例全部内容,希望文章能够帮你解决android开发教程之开机启动服务service示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)