2011-07-24 45 views
0

我的活動載荷數據給那些DATAS到視圖,我已經添加了PARAM到視圖construtor的Android:從activy傳遞對象從res.raw</p> <p>查看

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    System.loadLibrary("engine-2d"); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    if (_engine == null) 
    { 
     Display display = getWindowManager().getDefaultDisplay(); 
     int width = display.getWidth(); 
     int height = display.getHeight();  

     byte[] scene; 
     int scene_size = 0; 
     try { 
      InputStream ins = getResources().openRawResource(R.raw.package_test); 
      scene_size = ins.available(); 
      scene = new byte[scene_size]; 
      ins.read(scene); 
      ins.close(); 
     } catch (IOException e) { 
      // Should never happen! 
      throw new RuntimeException(e); 
     } 

     _engine = new PlsEngine2D(scene, scene_size, width, height); 
    } 

    setContentView(new PlsSurface2D(this, _engine)); 
} 


@Override 
public void onDestroy() { 
    super.onDestroy(); 
    _engine.DestroyEngine(); 
} 

我不不知道爲什麼,但當我按主頁按鈕(我的程序的實例仍在內存中) ,然後再次啓動應用程序時,它會崩潰。

事實上,PlsEngine2D使用ndk來調用malloc的C函數。

我不完全知道問題出在哪裏,但我不知道malloc指針是否仍然正確!

或可能是這是我的看法! 我將_engine對象給它。 我不知道當視圖喚醒它有_engine參數對象!

是否有另一種方法可以將我的_engine對象添加到視圖中? 視圖是否可以將_engine值賦予活動?

回答

1

你能在你的問題中發表一些代碼嗎?我不確定我是否掌握了整個畫面。

無論如何,當您啓動一個仍在內存中的活動時,活動的以下方法按以下順序調用:onRestart(),onStart()和onResume()。當活動仍然在內存

檢查this link的細節

0

onResume()被調用。它不會再次創建,因爲在onResume()中,您不會再次調用setContentView()

+0

即使應用程序不在內存中,onCreate()也會直接調用onResume(),所以需要添加一個重要的關注點 - onResume()。 – Wroclai