2014-09-03 3 views
1

У меня есть метод, который я хочу вызвать изнутри onCreate, а затем, когда этот метод завершит вызов второго метода. Это может быть не оптимальный способ сделать это, так что если есть более простой способ, дайте мне знать!Как выполнить/вызвать метод изнутри onCreate?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fragment_view_my_tickets); 
//I want to execute firstMethod from in here 
} 


public void firstMethod(){ 

    //code I want to execute on create 
    //Only when this is finished- I want to execute secondMethod 


} 

public void secondMethod(){ 

//only executed when firstMethod is finished 

} 
+0

Есть ли конкретная причина, по которой они являются публичными? Кроме того, в чем проблема? – codeMagic

+0

Когда вы говорите, что ваш firstMethod и secondMethod вы можете описать, что эти методы вернутся или будут делать точно? Arey вы уверены, что оба возвращаются в пустоту? –

ответ

2

Это прямой процесс:

protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.fragment_view_my_tickets); 
//I want to execute firstMethod from in here 
firstMethod(); 
secondMethod(); 
} 

Для этого, чтобы работать безотказно убедитесь, что ваш firstMethod() не имеет каких-либо многопоточность участие.

UPDATE из комментариев от @codeMagic:

вызов secondMethod() из firstMethod()

+0

Не могли бы вы назвать 'secondMethod()' из 'firstMethod()'? – codeMagic

+0

OP сказал только после выполнения первого метода 2-й должен быть выполнен. –

+0

@codeMagic Я уверен, что это то же самое. Если нет нити, тогда будет выполняться первый firstMethod(), после чего будет выполняться функция secondMethod(). Ваше решение также является допустимым, поэтому почему вы не отправляете его вместо ответа? \ –

0

Если firstMethod является процесс интенсивной задачей, такое чтение файла или HTTP-запросов, Я предлагаю читать на RxJava Observable (AsyncTask больше не предлагается для длительных операций)

Это полезно, когда вы выполняете задачу на основе результата другая задача.

Вот link учебник RxJava от Matthias Käppler.

+0

«AsyncTask больше не предлагается» Есть ли у вас какие-либо ссылки, подтверждающие это требование? –

+0

Общая проблема, когда AsyncTask onPostExecute пытается обновить пользовательский интерфейс, но пользовательский интерфейс (контекст) больше не существует (пользователь перемещается в сторону). В приведенной ссылке, есть раздел, в котором описываются проблемы с AsyncTasks – PrivatMamtora