service起步操作

来源:互联网 发布:淘宝商品名称字数限制 编辑:程序博客网 时间:2024/06/05 03:02

service作用是:service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。


service最基础的总结:

1,开启service------startService,stopService

步骤:1,在main.xml中添加两个button------start,stop进行监听

2,在Activity.java中进行监听和启动或者停止service

3,新建一个类,继承service和其中的方法---------oncreate、onstartCommand、ondestroy

onstartCommand方法中,实现服务的核心业务---如果耗时的操作应该放在另一个线程





package com.example.service111;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
// 直接点击back并不直接停止,但是,我们可以自己停止自己li if(i==30)this.stopself();
//当执行一个已启动的服务后,会直接调用onstartCommand方法执行业务
//默认情况下,服务与主线程在同一个线程中执行,如果服务执行比较耗时的操作,我们应该重开一个线程,避免阻塞
public class service extends Service{


@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}


//服务被穿件
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
System.out.println("beichuangjian");
}
//在该方法中,实现服务的核心业务----耗时的操作应该放在另一个线程
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
System.out.println((intent.getStringExtra("eeeeeeee")));
new Thread(new Runnable() {

//使用线程完成时间 @Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<50;i++)
{ System.out.println("onStartCommand"+i+Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
}).start();



return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("yijing xiaohuil");

}
}

0 0
原创粉丝点击