0
我正在嘗試創建具有後臺任務的服務。 24小時後,線程將開始並執行該過程。具有後臺任務的Android服務
我試過這樣。但它沒有奏效。
public class MyService extends Service {
int counter = 0;
static final int UPDATE_INTERVAL = 10 * 1000; ///1000 = 1 second
private Timer timer = new Timer();
Home home;
private boolean isRunning = true;
@Override
public IBinder onBind(Intent intent) {
// Not implemented...this sample is only for starting and stopping
// services.
// Service binding will be covered in another tutorial
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
// Announcement about starting
Toast.makeText(this, "Starting the Demo Service", Toast.LENGTH_SHORT)
.show();
// Start a Background thread
isRunning = true;
// Thread backgroundThread = new Thread(new BackgroundThread());
BackgroundThread();
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
// Stop the Background thread
isRunning = false;
// Announcement about stopping
Toast.makeText(this, "Stopping the Demo Service", Toast.LENGTH_SHORT)
.show();
}
private void BackgroundThread() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
String month = String.valueOf(c.get(Calendar.MONTH) + 1);
String year = String.valueOf(c.get(Calendar.YEAR));
String day = String.valueOf(c.get(Calendar.DAY_OF_MONTH));
String months = null;
if (month.startsWith("0") || month.startsWith("1")) {
months = year + "-" + month + "-" + day;
home.loadCalender(months);
} else {
months = year + "-" + "0" + month + "-" + day;
home.loadCalender(months);
}
}
}, 0, UPDATE_INTERVAL);
/*
* counter = 0; while(isRunning) { System.out.println(""+counter++);
* //Thread.currentThread().sleep(5000);
*
* }
*/
System.out.println("Background Thread is finished.........");
}
}
在我的主要活動,我已經開始服務... PLZ幫我做這個任務。
如何使用setInexactRepecting()?...如果你不是我的,你可以給我發一段代碼 – 2013-03-25 12:24:29
@joyhelina:「如何使用setInexactRepecting()?」 - 它是一個Java方法,你可以調用一個' AlarmManager',你可以通過調用''getSystemService()''''''''''''''''''''''''''。 – CommonsWare 2013-03-25 12:40:48