Я создал службу расширения класса android и реализовал ее методы, но служба уничтожается через некоторое время и снова, и снова вызывается его метод oncreate.Служба уничтожается снова и снова
public class X extends Service {
String doTask;
String username;
ParseObject obj;
Handler h3;
ParseFile file;
Runnable r3 = new Runnable() {
@Override
public void run() {
if (ParseUser.getCurrentUser() != null) {
try {
YService yS = new YService();
yS.execute();
} catch (Exception e) {
}
}
h3.postDelayed(r3, 60000);
}
};
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (ParseUser.getCurrentUser() != null) {
try {
h3 = new Handler();
h3.postDelayed(r3, 60000);
} catch (Exception e) {
}
}
return START_STICKY;
}
private class yService extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("TODOTasks");
query.whereEqualTo("username", ParseUser.getCurrentUser()
.getUsername());
query.findInBackground(new FindCallback<ParseObject>() {
String task;
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (e == null) {
if (objects.size() == 0) {
}
if (objects.size() > 0) {
po = objects.get(0);
NewServiceCaller(obj.getString("task"));
}
} else {
}
}
});
return null;
}
}
Я попытался отладить это, и я думаю, что управление достигает здесь и отсюда происходит некоторая ошибка.
private void commandexecuter(String commandtoexecute) {
if (commandtoexecute.equals("do some task")) {
try{
startService(new Intent(X.this,CalledService.class));
}
catch(Exception ex){
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onCreate() {
Toast.LENGTH_LONG).show();
}
}
О, я думал, что в моем коде была какая-то ошибка. Правильно ли это мой код? –
И я выполняю задание на загрузку в своем классе обслуживания, не создаст проблем, если служба будет уничтожена в середине задачи загрузки? –
@AryanArya: «Правильно ли мой код?» - Я понятия не имею, поскольку я понятия не имею, что вы пытаетесь сделать. Я могу сказать вам, что использование 'postDelayed()' и 'AsyncTask' в' Service' оба кода пахнет IMHO, а делать что-то один раз в минуту, скорее всего, будет враждебным пользователем. «не создаст проблем, если служба будет уничтожена в середине задачи загрузки» - ваша загрузка будет прервана, если Android завершит ваш процесс. – CommonsWare