Đây là cách bán khác nhau để giữ cho dịch vụ luôn hoạt động. Có cách để giết nó trong mã nếu bạn muốn muốn
Dịch vụ Bối cảnh:
package com.ex.ample;
import android.app.Service;
import android.content.*;
import android.os.*;
import android.widget.Toast;
public class BackgroundService extends Service {
public Context context = this;
public Handler handler = null;
public static Runnable runnable = null;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show();
handler = new Handler();
runnable = new Runnable() {
public void run() {
Toast.makeText(context, "Service is still running", Toast.LENGTH_LONG).show();
handler.postDelayed(runnable, 10000);
}
};
handler.postDelayed(runnable, 15000);
}
@Override
public void onDestroy() {
/* IF YOU WANT THIS SERVICE KILLED WITH THE APP THEN UNCOMMENT THE FOLLOWING LINE */
//handler.removeCallbacks(runnable);
Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show();
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show();
}
}
Đây là cách bạn bắt đầu nó từ hoạt động chính của bạn hoặc bất cứ nơi nào bạn muốn:
startService(new Intent(this, BackgroundService.class));
onDestroy()
sẽ được gọi khi ứng dụng bị đóng hoặc bị giết nhưng runnable chỉ khởi động nó ngay lập tức.
Tôi hy vọng điều này sẽ giúp ai đó ra ngoài.
Lý do tại sao một số người làm điều này là bởi vì các ứng dụng doanh nghiệp mà trong một số trường hợp người sử dụng/người lao động không phải có khả năng ngăn chặn những điều nào đó :)
http://i.imgur.com/1vCnYJW.png
lẽ dễ dàng hơn để làm điều gì đó như 'hệ thống .currentTimeMillis() + TIMEOUT_MS' hơn so với 'Lịch', để có được độ trễ ban đầu của bạn. –
Các bạn biết rằng bạn có các giá trị tĩnh trong AlarmManager trong 1 ngày, 12 giờ, 1 giờ, nửa na giờ và 15 phút? 'public static thức INTERVAL_DAY' dài ' public static thức INTERVAL_FIFTEEN_MINUTES' dài 'public static thức dài INTERVAL_HALF_DAY' ' public static thức INTERVAL_HALF_HOUR' dài 'public static thức dài INTERVAL_HOUR' – DaMachk