Разработка Android: Написание цикла for внутри onClick с намерением - PullRequest
0 голосов
/ 17 июля 2011

Я пытаюсь запустить приложение 5 раз после того, как пользователь нажмет назначенную кнопку, но оно запускается только один раз и пять раз выводит мой оператор отладки (Log.v).

Что такоеправильный формат для этого?

Это то, что я пытался:

Button btnStart = (Button) findViewById(R.id.StartService);
btnStart.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)

{   

for (int i = 0; i < 5; i++)
{
Intent intent = new Intent(currentClass.this, different.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startService(intent);
finish();
Log.v(TAG, "testing");
}
}
});

РЕДАКТИРОВАТЬ:

Я пытался заставить службу выполнить мою задачу пять раз, но послев первый раз я получаю исключение java.io.IOException: недопустимая поверхность предварительного просмотра.когда вызывается mMediaRecorder.prepare () и снова вызывается startRecording ().

1 Ответ

0 голосов
/ 17 июля 2011

Ваша служба еще не успела завершиться, когда ваш цикл for() выполняется пять раз.Вам необходимо установить связь между вашим пользовательским интерфейсом и службой - пусть служба отправит вам сообщение, когда это будет сделано, чтобы вы могли снова вызвать его (см. Раздел «Связь между службой и обслуживанием» здесь ).

В качестве альтернативы, измените службу, чтобы сделать то, что он делает пять раз.Если ваши данные являются динамическими каждый раз, когда вы хотите запустить службу, возможно, вам придется использовать первый подход.

...