Skip to main content


Automatic Refresh API Access Token with Retrofit and Okhttp Authenticator

This tutorial will be tell how to use Okhttp Authenticator with Retrofit. This authenticator method is usefull when we having a case like : Re-authorization without a user interaction (login) Requesting new API access token with refresh token This tutorial will cover the second case ( access token  dan  refresh token ) which is commonly use. The case will have scenario like this : Normal API request. When token or API key expired, API will return 401. Okhttp Authenticator will intercept the process. Okhttp Authenticator will requesting new token with refresh token. New token receive and API request will be reloaded automatically. So, first create ApiAdapter class which is a class that contain retrofit singleton. In this class add method getAdapter(). public class ApiClient {     public static Retrofit getAdapter() {         if (retrofit==null) {            final OkHttpClient.Builder httpClient = new OkHttpClient.Builder();            httpClient.addInterceptor(new Intercepto

How to add host ip address on Android Virtual Device (AVD) or Genymotion using Android Studio

Select  terminal Enter this script AVD adb shell echo ' hostname' /system/etc/hosts Genymotion adb shell echo ' hostname' /system/etc/hosts Enter this script to check if the host successfully added adb shell cat /system/etc/hosts Then terminal will print the hosts file list  Enter http://hostname from emulator browser to check if the host can be accessed

Locationlistener on Background Services

Before creating this service if you have requesting location update on the other part of your app, make sure you call removeLocationUpdate(). So the service can get the right location update. LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, context); public class LocationTrackingService extends Service implements LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{ protected GoogleApiClient googleApiClient; @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { if(googleApiClient != null && !googleApiClient.isConnected()) googleApiClient.connect(); else if(googleApiClient == null) { createGoogleApiClient(); } return START_STICKY; } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDest