0
我有兩個文件MainActivity.java和GestureListener.java 在MainActivity的onActivityCreate(),我開始一個線程GestureListener.start()。 GestureListener有一個等待手勢事件的線程。當事件發生時,我想轉移到MainActivity.java中的函數。如何從子android線程啓動一個活動?
可以做到這一點嗎?
我有兩個文件MainActivity.java和GestureListener.java 在MainActivity的onActivityCreate(),我開始一個線程GestureListener.start()。 GestureListener有一個等待手勢事件的線程。當事件發生時,我想轉移到MainActivity.java中的函數。如何從子android線程啓動一個活動?
可以做到這一點嗎?
製作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
}
}
需要看你的代碼 –
使用處理器和發佈消息到它,然後實施Handler.CallBack – Vilen