【问题标题】:How do I execute/invoke a method from within onCreate?如何从 onCreate 中执行/调用方法?
【发布时间】:2014-09-03 00:56:16
【问题描述】:

我有一个方法,我想从 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

}

【问题讨论】:

  • 公开它们是否有特定原因?还有,有什么问题?
  • 当你说你的 firstMethod 和 secondMethod 时,你能描述一下这些方法会返回什么或做什么吗?你确定它们都返回 void 吗?

标签: java android methods oncreate


【解决方案1】:

这是一个简单的过程:

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 的 cmets:

从 firstMethod() 调用 secondMethod()

【讨论】:

  • 你不会从firstMethod() 打电话给secondMethod() 吗?
  • OP 说只有在执行第一种方法后才应该执行第二种方法。
  • @codeMagic 我确信它是一回事。如果没有线程,则 firstMethod() 将被执行,然后 secondMethod() 将被执行。您的解决方案也是一个有效的解决方案,所以为什么不将其作为答案发布呢?\
【解决方案2】:

如果 firstMethod 是一个进程密集型任务,例如读取文件或 http 请求,我建议阅读 RxJava Observable(不再建议使用 AsyncTask,用于长时间运行的操作)

当您根据另一项任务的结果执行一项任务时,它很有用。

这是 Matthias Käppler 的 RxJava 教程的 link

【讨论】:

  • “不再建议使用 AsyncTask”您是否有任何引用支持此声明?
  • 常见问题,当 AsyncTask onPostExecute 尝试更新 UI,但 UI(上下文)不再存在(用户导航离开)时。在我提供的链接中,有一个部分概述了 AsyncTasks 的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多