在Activity中设置两个按钮,分别为启动和关闭Service:

bt01.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(mainActivity.this, MyService.class);
startService(i);
Toast.makeText(mainActivity.this, "Service启动成功",
Toast.LENGTH_LONG).show();
}
});
bt02.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(mainActivity.this, MyService.class);
stopService(i);
Toast.makeText(mainActivity.this, "Service启动成功",
Toast.LENGTH_LONG).show();
}
});

添加MyService.java

public class MyService extends Service {
MyThread myThread;

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

@Override
public void onStart(Intent intent, int startId) {//启动Service
// TODO Auto-generated method stub
myThread = new MyThread();
myThread.start();
super.onStart(intent, startId);
}

@Override
public void onDestroy() {//关闭Service
// TODO Auto-generated method stub
myThread.flag = false;
super.onDestroy();
}

class MyThread extends Thread {
boolean flag = true;
int c = 0;

public void run() {
while (flag) {
Intent i = new Intent("com.sunny.myThread");
i.putExtra("myThread", c);
sendBroadcast(i);//发送广播,在mainActivity中进行捕获,更新数据
c++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

}

mainActivity中,添加广播接收器,过滤接收来自action为com.sunny.myThread的广播:

IntentFilter intentFilter = new IntentFilter("com.sunny.myThread");
MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
registerReceiver(myBroadcastReceiver, intentFilter);//注册广播接收器

其中:

class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle myBundle = intent.getExtras();
int myInt = myBundle.getInt("myThread");
tv01.setText("后台Service运行了" + myInt + "秒");
}

}

更多相关文章

  1. 三十、Google Map导航应用
  2. Android动态布局
  3. Android里面从Dialog中获取返回值并写入指定TextView组件
  4. Android(安卓)APP--编写简单的答题器
  5. Android中FloatingActionButton实现悬浮按钮实例
  6. Android学习笔记(6)——Android——LoginDemo
  7. Android中浮动按钮
  8. Android按钮实现点击事件的四种方式
  9. android录音机的一些问题整理

随机推荐

  1. Android(安卓)FrameWork——Touch事件派
  2. Android读写XML(下)——创建XML文档
  3. zz :Android测试之Monkey
  4. android的PowerManager和PowerManager.Wa
  5. Unity和Android交互
  6. Android属性之build.prop生成过程分析
  7. React Native基础之Image
  8. Android(安卓)P窗口机制之DecorView加载
  9. Android的数据存储方式
  10. 收藏的Android非常好用的组件或者框架。