2011-09-20 30 views
1

我有以下幾點: -Android 2.2的實現Runnable公共無效的run()沒有被調用

public class resApp extends MapActivity implements Runnable { 

    public void run() { 
     searchImage.setVisibility(View.GONE); 
    } 

} 

我也有一個運行在此之前,但似乎運行確定一個後臺線程。

當我運行應用程序run()永遠不會被調用。

你能幫忙嗎? 這段代碼的確在6個月前工作,但設備是2.1。

感謝

克里斯


編輯

我已實施

private Handler handler; 

handler = new Handler() { 
@Override 
public void handleMessage(Message msg) { 
    if (msg.toString().equalsIgnoreCase("1")) { 
    ad.dismiss(); 
    } else { 
    pd.dismiss(); 
    } 
} 
}; 

作爲一個例子,我已經在回地面運行的異步任務在2.1中,我可以在那裏有getter和setter。我現在不得不把它們放到run()方法中,因爲2.2不喜歡在異步任務中設置onclicklistener。 所有我需要做的是調用run()方法後執行,但已經嘗試了一切: -

protected void onPostExecute(Object result) { 
// Pass the result data back to the main activity 
if (dialog != null) { 
    resApp.this.dialog.dismiss(); 
} 
} 

難道我只是做: -

handler = new Handler() { 
    @Override 
public void handleMessage(Message msg) { 
    this.resApp.run(); 
} 
}; 
+0

你的代碼中調用它是非常不完整的。 Runnable.run不是自己調用的,它可以從Handler調用。 –

+0

嗨老鼠,看看我上面的編輯,感謝幫助。 – user799306

回答

2

可以調用run()方法通過使用Handler。

Handler myHandler = new Handler(); 
resApp myObj; 

,並通過使用myHandler.post(myObj);

+0

謝謝,但這不起作用,你有什麼可以稱之爲運行方法的其他想法。就像我說的相同的代碼是在不同的設備上工作。 – user799306

+0

你想繼續運行線程或只執行一次..? –

+0

感謝看到我上面的編輯 – user799306