Данные о загрузке моей активности из res.raw
Чтобы предоставить эти данные представлению, я добавил параметр к представителю представления
@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 для вызова функции C, которая делает malloc.
Я точно не знаю, в чем проблема, но мне интересно, правильны ли указатели malloc!
Или, может быть, это мое мнение!
Я даю ему объект _engine.
Интересно, когда вид проснется, у него снова будет объект _engine param!
Есть ли другой способ передать мой объект _engine в представление?
Может ли представление принять значение _engine для действия?