このサービスを使用してバックグラウンド操作を実行する必要がありますが、1秒でコードを実行する場合は、1秒ごとに呼び出すハンドラーを使用するサービスの例を次に示します。
public class YourService extends Service {
private static final String TAG = "Your Service";
private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
}
};
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
// Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
}
@Override
public void onDestroy() {
super.onDestroy();
// Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
handler.removeCallbacks(sendUpdatesToUI);
}
private Runnable sendUpdatesToUI = new Runnable() {
public void run() {
/// Any thing you want to do put the code here like web service procees it will run in ever 1 second
handler.postDelayed(this, 1000); // 1 seconds
}
};
@Override
public void onStart(Intent intent, int startid) {
handler.removeCallbacks(sendUpdatesToUI);
handler.postDelayed(sendUpdatesToUI, 1000);//1 second
Log.d(TAG, "onStart");
}
}
また、Androidが3時間または4時間以内にサービスをアイドル状態にするたびにサービスを実行できるわけではありません。フォアグラウンドサービスを使用して、プロセスを長時間実行することをお勧めします。