你好,Android和線程
我有一個活動,其佈局是由一個FrameLayout組成。我有一個擴展View的類,然後添加到這個佈局。
我想不斷吸取這個觀點,就像在遊戲循環中一樣。
問題是,我是新來的Android和該線程的東西正在沒有意義..
能,除非我的主UI線程我我真的不更新佈局? 我如何着手初始化線程? :(
編輯::這是我所想出的,但它並沒有更新我與任何框架
public class GameFrame extends View
{
private GameThread m_gt;
public GameFrame(Context context, int width int height){
//do some initialisation stuff
}
public GameThread getGameThread(){
if(m_gt != null){
return m_gt;
}else{
m_gt = new GameThread(this);
return m_gt;
}
}
@Override
public void onDraw(Canvas canvas){
//Draw loads of stuff
}
public class GameThread extends AsyncTask<Void, Void, Void>
{
private GameFrame m_gf;
public GameThread(GameFrame gf){
m_gf = gf;
}
@Override
protected void onProgressUpdate(Void... arg0){
System.out.println("Wahoo");
m_gf.invalidate();
}
@Override
protected Void doInBackground(Void... arg0) {
long start, end;
while(some bool){
System.out.println("Threadin'");
publishProgress();
//Fiddle with some values
}
return null;
}
}
}
然後初始化它的主要活動:
private FrameLayout frame;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
...
frame = (FrameLayout) findViewById(R.id.gameframe);
GameFrame gf = new GameFrame(this, width, height);
frame.addView(gf);
gf.getGameThread().execute();
}
是我的異步的理解是否正確?如果這項工作的onDraw給出有效的代碼?
我也許應該說,打印輸出「嗬」和「線程」被打印出來無數次這樣的東西必須正確發生。更關鍵的是它是否印有「衛矛」,那麼這無疑應重繪旁邊我看...但沒有任何反應:(
你這樣做應該通過畫布繪製。請參閱[this](http://developer.android.com/guide/topics/graphics/2d-grap hics.html)文章。 – clemp6r 2012-01-07 10:26:45