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
Main activity AndroidServiceTestActivity.java
package com.AndroidServiceTest;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.widget.Toast;public class AndroidServiceTestActivity extends Activity {MyReceiver myReceiver; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }@Overrideprotected void onStart() { // TODO Auto-generated method stub //Register BroadcastReceiver //to receive event from our service myReceiver = new MyReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(MyService.MY_ACTION); registerReceiver(myReceiver, intentFilter); //Start our own service Intent intent = new Intent(AndroidServiceTestActivity.this, com.AndroidServiceTest.MyService.class); startService(intent); super.onStart();}@Overrideprotected void onStop() { // TODO Auto-generated method stub unregisterReceiver(myReceiver); super.onStop();}private class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub Toast.makeText(AndroidServiceTestActivity.this, "Triggered by Service!", Toast.LENGTH_LONG).show(); }}}
MyService.java
package com.AndroidServiceTest;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
final static String MY_ACTION = "MY_ACTION";
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
MyThread myThread = new MyThread();
myThread.start();
return super.onStartCommand(intent, flags, startId);
}
public class MyThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0; i<10; i++){
try {
Thread.sleep(5000);
Intent intent = new Intent();
intent.setAction(MY_ACTION);
sendBroadcast(intent);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
stopSelf();
}
}
}

No comments:
Post a Comment