나는 알람 매니저를 호출하는 서비스를 정해진 시간 내에 가지고 있으며 서비스를 중지하고자합니다. 알람 관리자 만 취소하지만 내 서비스는 백그라운드에서 계속 실행 중입니다.service stop from mainActivity
입니다 주요 활동
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!cd.isConnectingToInternet()) {
showDialog(noInternetDialog);
} else if (start.getText().toString().equalsIgnoreCase(getResources().getString(R.string.start_interval))) {
countLimit.setEnabled(false);
timeLimit.setEnabled(false);
start.setText(R.string.stop_interval);
start.refreshDrawableState();
// To save send configuration
saveSendConfiguration();
// Show sms to send
XMLParser read = new XMLParser();
String numberOfUnsend = read.getXmlFromUrl(baseURL + SMScount);
status.setText(numberOfUnsend);
Intent downloader = new Intent(context, AlarmReceiver.class);
downloader.putExtra("time", timeLimit.getSelectedItem()
.toString());
downloader.putExtra("count", countLimit.getSelectedItem()
.toString());
downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
pendingIntent = PendingIntent.getBroadcast(context, 0,
downloader, PendingIntent.FLAG_CANCEL_CURRENT);
int delay = Integer.parseInt(countLimit.getSelectedItem()
.toString());
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
10 * 1000, delay * 60000, pendingIntent);
Log.i(tag, "Call from main activity");
} else {
alarmManager.cancel(pendingIntent);
start.setText(R.string.start_interval);
start.refreshDrawableState();
countLimit.setEnabled(true);
timeLimit.setEnabled(true);
Log.i(tag, "Alarm Cancel");
}
}
});
내 코드는 내 경보 수신기 코드
public class AlarmReceiver extends BroadcastReceiver {
private static String tag = "Saeed";
@Override
public void onReceive(Context context, Intent intent) {
Intent update = new Intent(context, IntervalService.class);
String time = intent.getStringExtra("time");
String count = intent.getStringExtra("count");
update.putExtra("time", time);
update.putExtra("count", count);
Log.i(tag, "Call service from Alaram Receiver," + time + "," + count);
context.startService(update);
}
}
이며, 이것은 내가로부터 서비스를 중지 할 수 있습니다 어떻게 내 서비스 코드
public class IntervalService extends IntentService {
private static final String tag = "Saeed";
private String baseURL;
private DatabaseHandler db;
private int time;
private int count;
private SharedPreferences pref;
ConnectionDetector cd;
public IntervalService() {
super("Auto Interval");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.i(tag, "Interval Service implementation was run");
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
pref = PreferenceManager.getDefaultSharedPreferences(this);
baseURL = pref.getString("baseUrl","");
db = new DatabaseHandler(this);
cd = new ConnectionDetector(getApplicationContext());
time = Integer.parseInt(intent.getStringExtra("time"));
count = Integer.parseInt(intent.getStringExtra("count"));
new Interval().execute(); //this is async task class
}
입니다 내 주요 활동?
저는 InternalService 클래스를 사용하지만 중지하지 않습니다. –