Hello Friends , Have you thinking about calling the service in your android app.
Trying to start service when you receive some type of notifiaction or need to refresh a view
or activty after getting new data from web service or need to refresh
your activity after every few second of time interval.
Yes , this android article help you a lot. In my case I wanted to refresh my activity silently
whenever I received new data in my web service response.
For this I used Broadcast receiver and services and things work like charm to me :)
1.What is Broadcast receiver??
A broadcast receiver is an Android component which allows you to register
for system or application events.
Let’s start with BroadcastReceiver: Here we will try to refresh our view via
Android service call.
First of all we need to define private variable in our Activity:
//---------------------------
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateDate(intent);
}
};
//---------------------------
2.Then we override methods onResume() where our broadcast receiver will be registered
and also onPause() where will our receiver be unregistered:
//---------------------------
  
@Override
    
public void onResume() {
    
    super.onResume();
    
    registerReceiver(broadcastReceiver, new
      IntentFilter(
    
MyService.BROADCAST_ACTION));
    
}
    
@Override
    
public void onPause() {
    
super.onPause();
    
// unregisterReceiver(broadcastReceiver);
    
}
    
//---------------------------
  
3.Now we can start our service (onStart), send a broadcast
    message and we will show a toast message.
  
   And also update the UI afeter ever few(7 second)
    second.
  
//---------------------------
  
package com.mukesh.services;
import java.util.Date;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
public class MyService extends Service {
        public static final String BROADCAST_ACTION = "com.mukesh.service";
        private final Handler handler = new Handler();
        Intent intent;
        int counter = 0;
        @Override
        public void onCreate() {
                // Called on service created
                intent = new Intent(BROADCAST_ACTION);
        }
        @Override
        public void onDestroy() {
                // Called on service stopped
                stopService(intent);
        }
        @Override
        public void onStart(Intent intent, int startid) {
                int i = 0;
                while (i <= 2) {
                        if (i > 1) {
                                i++;
                                this.onDestroy();
                        } else {
                                counter = i;
                                i++;
                                handler.removeCallbacks(sendUpdatesToUI);
                                handler.postDelayed(sendUpdatesToUI, 1 * 1000); // 1 sec
                        }
                }
        }
        private Runnable sendUpdatesToUI = new Runnable() {
                public void run() {
                        DisplayLoggingInfo();
                        handler.postDelayed(this, 7 * 1000); // 7 sec
                }
        };
        private void DisplayLoggingInfo() {
                intent.putExtra("time", new Date().toLocaleString());
                intent.putExtra("counter", String.valueOf(counter));
                sendBroadcast(intent);
                stopService(intent);
        }
        public static boolean isRunning() {
                return true;
        }
        @Override
        public IBinder onBind(Intent intent) {
                return null;
        }
}
//---------------------------
4. Don’t forget to add this service declaration in your AndroidManifest.xml in
order to be set up properly:
//----------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.examples"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SimpleCalendarViewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
//----------------------------
Download Source code:
Android Service Demo
Enjoy Coding :)
4. Don’t forget to add this service declaration in your AndroidManifest.xml in
order to be set up properly:
//----------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.examples"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SimpleCalendarViewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
//----------------------------
Download Source code:
Android Service Demo
Enjoy Coding :)