Service----样例一
来源:互联网 发布:doom4优化 编辑:程序博客网 时间:2024/05/16 12:52
Service
Service是Android的四大组件之一,作用非常的重要(至于什么重要就不说了)。这里我提供一个样例,这个样例提供了startService和bindService二种开启线程的方式
样例代码:
关键代码:
1.Sample_2_6.java
public class Sample_2_6 extends Activity {OnClickListener myOnClickListener;//监听方法ServiceConnection connection;//得到ServiceConnection引用Button startService;//startService按钮Button stopService;//stopService按钮Button bindService;//bindService按钮Button unbindService;//unbindService按钮 public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法 super.onCreate(savedInstanceState); setContentView(R.layout.main); connection = new ServiceConnection(){public void onServiceConnected(ComponentName arg0, IBinder arg1){}public void onServiceDisconnected(ComponentName name){} }; startService = (Button) findViewById(R.id.startService); stopService = (Button) findViewById(R.id.stopService); bindService = (Button) findViewById(R.id.bindService); unbindService = (Button) findViewById(R.id.unbindService); myOnClickListener = new OnClickListener(){public void onClick(View v) {Intent intent = new Intent(Sample_2_6.this,MyService.class);if(v == startService){startService(intent);bindService.setEnabled(false);unbindService.setEnabled(false);}else if(v == stopService){stopService(intent);bindService.setEnabled(true);unbindService.setEnabled(true);}else if(v == bindService){bindService(intent, connection, BIND_AUTO_CREATE);startService.setEnabled(false);stopService.setEnabled(false);}else if(v == unbindService){unbindService(connection);startService.setEnabled(true);stopService.setEnabled(true);}} }; startService.setOnClickListener(myOnClickListener); stopService.setOnClickListener(myOnClickListener); bindService.setOnClickListener(myOnClickListener); unbindService.setOnClickListener(myOnClickListener); }}
2.MyService.java
public class MyService extends Service{MyThread myThread;//线程的引用public void onCreate() {//重写的onCreate方法Log.d("MyService", "onCreate");//打印日志super.onCreate();}public void onStart(Intent intent, int startId) {//重写的onStart方法Log.d("MyService", "onStart");//打印日志if(myThread == null){myThread = new MyThread();myThread.start();//启动线程}super.onStart(intent, startId);}public IBinder onBind(Intent arg0) {//重写的onBind方法Log.d("MyService", "onBind");//打印日志if(myThread == null){myThread = new MyThread();myThread.start();//启动线程}return null;}public boolean onUnbind(Intent intent) {//重写的onUnbind方法Log.d("MyService", "onUnbind");//打印日志if(myThread != null){myThread.flag = false;myThread = null;//释放线程}return super.onUnbind(intent);}public void onDestroy() {//重写的onDestroy方法Log.d("MyService", "onDestroy");//打印日志if(myThread != null){myThread.flag = false;myThread = null;}super.onDestroy();}public class MyThread extends Thread{boolean flag = true;//循环标志位int i = 0;public void run(){while(flag){Log.d("MyService", "i = " + (i++));//打印日志try{Thread.sleep(1000);//睡眠1秒钟}catch(Exception e){//捕获异常e.printStackTrace();//打印异常}}}}}
源码下载地址:
http://download.csdn.net/detail/hfreeman2011/5041824
- Service----样例一
- Service
- Service
- service
- Service
- service
- Service
- Service
- service
- Service
- Service
- Service
- service
- service
- Service
- Service
- Service
- Service
- 直接运行内存中的程序
- VS addin 例子(附源码)
- 和菜鸟一起深入学习国嵌实验之进程创建,exec函数,进程等待
- 我自己写的一个makefile,研究了2周,写的还是这么粗糙,惭愧。。
- Problem B bfs
- Service----样例一
- hdu_3407_Zjnu Stadium(带权并查集)
- ucore lab1 任务三
- xcode 快捷键
- Linux 下 socket 编程示例
- Android 简单的使用api 播放在线视频
- 插头DP(HDOJ1693)初识
- ucore lab1 任务四
- UVa 10905 - Children's Game