Я делаю приложение, которое требует постоянного выполнения запросов определенного атрибута в table.Here, как я делаю это прямо сейчас .. код из моего класса обслуживания:служба в бесконечном цикле - андроид
@Override
public int onStartCommand(Intent intent,int flags,int startId)
{
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
ParseUser currentUser = ParseUser.getCurrentUser();
String username = currentUser.getString("username");
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("isAttacking", username);
while(true)
{
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> objects, ParseException e) {
if ((e == null)&(objects.size() != 0))
{
// The query was successful.
ParseUser attacker = objects.get(0);
String attackerName = attacker.getUsername();
Log.i("ambustest",attackerName);
makeToast(attackerName);
} else {
Log.i("fd","Something went wrong.");
}
}
});
return START_STICKY;
}
}
Запрос находится внутри бесконечного цикла, но выполняется только один раз. Лучше всего предположить, что он ломается, когда он встречает оператор return. Любой способ сохранить цикл, не помещая оператор return в недостижимый код?
Вы не можете показать сообщение Toast в сервисе, код должен показывать ошибку. –
nope это прекрасно работает .. – parth
@Brontok http://developer.android.com/reference/android/app/Service.html. тост в обслуживании прекрасен. – Raghunandan