in this onstart() of the main activity(androidservicetestactivity.java), we instance and register our own broadcastreceiver(myreceiver), and also start our service(myservice.java). in myservice.java, it will send 10 actions with my_action. it will trigger the myreceiver in androidservicetestactivity.java.



main activity androidservicetestactivity.java



Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]androidservicetest[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]broadcastreceiver[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]context[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intentfilter[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]toast[/color][color=#007700]; public class [/color][color=#0000bb]androidservicetestactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ [/color][color=#0000bb]myreceiver myreceiver[/color][color=#007700]; [/color][color=#ff8000]/** called when the activity is first created. */ [/color][color=#007700]@[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]main[/color][color=#007700]); } @[/color][color=#0000bb]override [/color][color=#007700]protected [/color][color=#0000bb]void onstart[/color][color=#007700]() { [/color][color=#ff8000]// todo auto-generated method stub //register broadcastreceiver //to receive event from our service [/color][color=#0000bb]myreceiver [/color][color=#007700]= new [/color][color=#0000bb]myreceiver[/color][color=#007700](); [/color][color=#0000bb]intentfilter intentfilter [/color][color=#007700]= new [/color][color=#0000bb]intentfilter[/color][color=#007700](); [/color][color=#0000bb]intentfilter[/color][color=#007700].[/color][color=#0000bb]addaction[/color][color=#007700]([/color][color=#0000bb]myservice[/color][color=#007700].[/color][color=#0000bb]my_action[/color][color=#007700]); [/color][color=#0000bb]registerreceiver[/color][color=#007700]([/color][color=#0000bb]myreceiver[/color][color=#007700], [/color][color=#0000bb]intentfilter[/color][color=#007700]); [/color][color=#ff8000]//start our own service [/color][color=#0000bb]intent intent [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700]([/color][color=#0000bb]androidservicetestactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#0000bb]com[/color][color=#007700].[/color][color=#0000bb]androidservicetest[/color][color=#007700].[/color][color=#0000bb]myservice[/color][color=#007700].class); [/color][color=#0000bb]startservice[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700]); [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]onstart[/color][color=#007700](); } @[/color][color=#0000bb]override [/color][color=#007700]protected [/color][color=#0000bb]void onstop[/color][color=#007700]() { [/color][color=#ff8000]// todo auto-generated method stub [/color][color=#0000bb]unregisterreceiver[/color][color=#007700]([/color][color=#0000bb]myreceiver[/color][color=#007700]); [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]onstop[/color][color=#007700](); } private class [/color][color=#0000bb]myreceiver [/color][color=#007700]extends [/color][color=#0000bb]broadcastreceiver[/color][color=#007700]{ @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void onreceive[/color][color=#007700]([/color][color=#0000bb]context arg0[/color][color=#007700], [/color][color=#0000bb]intent arg1[/color][color=#007700]) { [/color][color=#ff8000]// todo auto-generated method stub [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]androidservicetestactivity[/color][color=#007700].[/color][color=#0000bb]this[/color][color=#007700], [/color][color=#dd0000]"triggered by service!"[/color][color=#007700], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_long[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); } } } [/color
myservice.java



Mã nguồn PHP:
[color=#000000]
package com[/color][color=#007700].[/color][color=#0000bb]androidservicetest[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]service[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]intent[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]ibinder[/color][color=#007700]; public class [/color][color=#0000bb]myservice [/color][color=#007700]extends [/color][color=#0000bb]service [/color][color=#007700]{ final static [/color][color=#0000bb]string my_action [/color][color=#007700]= [/color][color=#dd0000]"my_action"[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]ibinder onbind[/color][color=#007700]([/color][color=#0000bb]intent arg0[/color][color=#007700]) { [/color][color=#ff8000]// todo auto-generated method stub [/color][color=#007700]return [/color][color=#0000bb]null[/color][color=#007700]; } @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]int onstartcommand[/color][color=#007700]([/color][color=#0000bb]intent intent[/color][color=#007700], [/color][color=#0000bb]int flags[/color][color=#007700], [/color][color=#0000bb]int startid[/color][color=#007700]) { [/color][color=#ff8000]// todo auto-generated method stub [/color][color=#0000bb]mythread mythread [/color][color=#007700]= new [/color][color=#0000bb]mythread[/color][color=#007700](); [/color][color=#0000bb]mythread[/color][color=#007700].[/color][color=#0000bb]start[/color][color=#007700](); return [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]onstartcommand[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700], [/color][color=#0000bb]flags[/color][color=#007700], [/color][color=#0000bb]startid[/color][color=#007700]); } public class [/color][color=#0000bb]mythread [/color][color=#007700]extends [/color][color=#0000bb]thread[/color][color=#007700]{ @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]void run[/color][color=#007700]() { [/color][color=#ff8000]// todo auto-generated method stub [/color][color=#007700]for([/color][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]++){ try { [/color][color=#0000bb]thread[/color][color=#007700].[/color][color=#0000bb]sleep[/color][color=#007700]([/color][color=#0000bb]5000[/color][color=#007700]); [/color][color=#0000bb]intent intent [/color][color=#007700]= new [/color][color=#0000bb]intent[/color][color=#007700](); [/color][color=#0000bb]intent[/color][color=#007700].[/color][color=#0000bb]setaction[/color][color=#007700]([/color][color=#0000bb]my_action[/color][color=#007700]); [/color][color=#0000bb]sendbroadcast[/color][color=#007700]([/color][color=#0000bb]intent[/color][color=#007700]); } catch ([/color][color=#0000bb]interruptedexception e[/color][color=#007700]) { [/color][color=#ff8000]// todo auto-generated catch block [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]printstacktrace[/color][color=#007700](); } } [/color][color=#0000bb]stopself[/color][color=#007700](); } } } [/color
modify androidmanifest.xml to add service ".myservice"



Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?> [/color]<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androidservicetest" android:versioncode="1" android:versionname="1.0"> <uses-sdk android:minsdkversion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".androidservicetestactivity" 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=".myservice"/> </application> </manifest>
next:
- pass data from service to activity