2014-05-15 38 views
0

我有兩個文件MainActivity.java和GestureListener.java 在MainActivity的onActivityCreate(),我開始一個線程GestureListener.start()。 GestureListener有一個等待手勢事件的線程。當事件發生時,我想轉移到MainActivity.java中的函數。如何從子android線程啓動一個活動?

可以做到這一點嗎?

+0

需要看你的代碼 –

+0

使用處理器和發佈消息到它,然後實施Handler.CallBack – Vilen

回答

0

製作GestureListener的參數化構造函數,並且當您構建GestureListener的對象時,只需將MainActivity的對象傳遞給該構造函數,然後在想要調用MainActivity的方法的GestureListener類中,然後只需從該Object調用該方法。

檢查下面的代碼:

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    GestureListener listener = new GestureListener(this); 
    listener.start(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public void makeSomeCalculation() { 
    //logic to change some UI 
} 
} 

,並檢查GestureListener類:

public class GestureListener extends Thread { 

MainActivity mainActivity; 

public GestureListener(MainActivity mainActivity) { 
    // TODO Auto-generated constructor stub 

    this.mainActivity = mainActivity; 
} 

public void run() { 
    //write other logic 
     mainActivity.makeSomeCalculation(); 
    //write other logic 
} 
} 
相關問題