0

我有一个方法需要在活动开始时运行。我已经尝试将它放在 OnCreate 中,但是如果活动有一段时间保持不变,则 onCreate 会被调用两次(就是这种情况,我正在检查在线更新......所以这需要一些时间)

这就是为什么我不能把更新方法放在 onCreate

有任何想法吗?

谢谢你,罗恩

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);
    checkUpdate();
}

private void checkUpdate(){
    Runnable runnable = new Runnable() {
        public void run() {
            try
            {
                // create a web request to check if i have the latest update
                HttpClient client = new DefaultHttpClient();  
.
.
.
.
.
        };
    new Thread(runnable).start();
4

3 回答 3

3

通常,您不想将需要一些时间来执行的方法放在 UI 线程上。相反,您可能希望创建 AsyncTask(或 Thread/Handlers)以在后台运行该方法。另请查看 onStart() 是否会帮助您摆脱 onCreate() 的一些逻辑。

于 2011-10-30T15:24:56.077 回答
1

使用布尔值来确定活动是否已经开始。

于 2011-10-30T15:11:36.153 回答
0

you can execute that method in oncreate but add a class boolean field to check if you already add run that method.

于 2011-10-30T15:25:29.567 回答