【发布时间】:2011-07-24 15:01:00
【问题描述】:
我的活动从 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 参数对象!
还有其他方法可以将我的 _engine 对象提供给视图吗? 视图是否可以将 _engine 值带入活动?
【问题讨论】:
标签: android view android-activity