2014-02-24 28 views
1

我試圖在java中初始化一些變量,然後將它們發送到我的本機代碼。我需要延遲nativeactivity調用,以便java變量獲得初始化時間,然後將它們傳遞給本地活動。如何推遲nativeactivity調用,直到java對象被初始化?

我的主要問題是,當我的活動開始時,本機活動不斷被調用,因爲我從NativeActivity(這是強制性的)擴展了我的類。只要在超級後調用onCreate(),我的本地活動就會自動啓動,並且我的java變量尚未初始化。

+0

你使用boost嗎? – eozgonul

+0

我不熟悉boost。它是什麼? –

+0

簡而言之,它是一個開源的跨平臺C++庫。我有和你一樣的情況,我使用Boost的互斥體和條件變量來解決它。這可能會使事情複雜化,而不是你的情況,所以我不會詳細討論。 – eozgonul

回答

0

您可以在您的班級中使用處理程序。

下面是我的代碼正在執行延遲操作:

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); 
    }  

調用此函數到你的主類。

希望它也能爲你工作。

謝謝

+0

如何通過處理程序控制本地調用,只要onCreate()調用它尋找super.onCreate(),只要它發現超級.onCreate()它開始執行本機代碼,他應該在哪裏放置處理程序,你有沒有在jni或本地代碼中工作? –

+0

我需要一種方法來延遲nativeactivity調用而不是整個活動。我需要運行該活動,以便其他變量可以在作爲參數發送到本地活動之前進行初始化。 –