2011-12-14 7 views
1

Я написал сценарий для имитации действий пользователя. Рабочий процесс, например, сначала коснитесь значка, запустите действие. Затем выполните другие действия. Вопрос в том, что я не знаю точное время, когда деятельность была запущена полностью. В настоящее время я использую sleep, чтобы оживить мой скрипт. Есть ли способ узнать, когда действие полностью запущено?Есть ли способ узнать, когда действие полностью запущено?

+1

Это зависит от того, что вы контролируете? Значит, вы в состоянии написать код? И откуда вы запускаете скрипт? –

ответ

-1

Ваша заключительная задача состоит в том, чтобы запустить что-то после того, как деятельность начал ... делать это

Первый метод вызывается из деятельности onCreate(), поэтому можно сказать, завершая систему onCreate() называет onStart(), которая вызывает метод onResume() ... а onResume() завершает вы можете сказать, ваша деятельность начал правильно ...

Если вы не собираетесь переопределить onStart() или onResume(), что я собираюсь описать можно записать в виде последних заявлений onCreate(). Это я обычно делаю, когда мне не нужны onStart() или onResume().

Вы можете создать объект Handler. Как

Handler handler = new Handler();

Handler имеет метод postDelayed(), который вызывается несколько раз после создания и запуска закончена.

называют это как

handler.postDelayed(runnable,timeInMilliSeconds);

после всех процессов завершения, приложение будет ждать timeInMilliSeconds мс, чтобы начать процесс, определенный в run методом runnable, представленной в postDelayed .....

Таким образом,

Если ваша задача знать, когда запуск завершен, ответ будет следующим: в конце onResume() вызывается из вашего onStart() ....

Если вы хотите, чтобы выполнить некоторые действия использовать handler.PostDelayed() метод и держать timeInMilliSeconds очень низко ... [от 1 до 10].

0

Я не знаю, что именно вы хотите сделать, когда началась деятельность. Но обычно каждое требование заключается в том, чтобы найти ширину представления или что-то делать с пользовательским интерфейсом. Дело в том, что onCreate вызывается до того, как пользовательский интерфейс будет нарисован, поэтому ничего не может быть связано с пользовательским интерфейсом, который включает в себя измерение. Для этого мы можем использовать глобальный приемник макетов.

ViewTreeObserver vto = outerLayout.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     outerLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     //This is executed once the layout is drawn. AFAIK this is as close as it gets 
     to when the activity is started. 
    } 
}); 
Смежные вопросы