我試圖在java中初始化一些變量,然後將它們發送到我的本機代碼。我需要延遲nativeactivity調用,以便java變量獲得初始化時間,然後將它們傳遞給本地活動。如何推遲nativeactivity調用,直到java對象被初始化?
我的主要問題是,當我的活動開始時,本機活動不斷被調用,因爲我從NativeActivity(這是強制性的)擴展了我的類。只要在超級後調用onCreate(),我的本地活動就會自動啓動,並且我的java變量尚未初始化。
我試圖在java中初始化一些變量,然後將它們發送到我的本機代碼。我需要延遲nativeactivity調用,以便java變量獲得初始化時間,然後將它們傳遞給本地活動。如何推遲nativeactivity調用,直到java對象被初始化?
我的主要問題是,當我的活動開始時,本機活動不斷被調用,因爲我從NativeActivity(這是強制性的)擴展了我的類。只要在超級後調用onCreate(),我的本地活動就會自動啓動,並且我的java變量尚未初始化。
您可以在您的班級中使用處理程序。
下面是我的代碼正在執行延遲操作:
private void cal(){
final Handler handler2 = new Handler();
Runnable runnable = new Runnable() {
int i=0;
public void run()
{
if(i==0)
{
// Enter your code here which you want run after some deley.
i++;
}
handler2.postDelayed(this, 2000);
}
};
handler2.postDelayed(runnable, 2000);
}
調用此函數到你的主類。
希望它也能爲你工作。
謝謝
如何通過處理程序控制本地調用,只要onCreate()調用它尋找super.onCreate(),只要它發現超級.onCreate()它開始執行本機代碼,他應該在哪裏放置處理程序,你有沒有在jni或本地代碼中工作? –
我需要一種方法來延遲nativeactivity調用而不是整個活動。我需要運行該活動,以便其他變量可以在作爲參數發送到本地活動之前進行初始化。 –
你使用boost嗎? – eozgonul
我不熟悉boost。它是什麼? –
簡而言之,它是一個開源的跨平臺C++庫。我有和你一樣的情況,我使用Boost的互斥體和條件變量來解決它。這可能會使事情複雜化,而不是你的情況,所以我不會詳細討論。 – eozgonul