【问题标题】:Android: passing object from activy to viewAndroid:将对象从活动传递到视图
【发布时间】: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


    【解决方案1】:

    您能在您的问题中发布一些代码吗?我不确定我是否了解全部情况。

    不管怎样,当你启动一个还在内存中的activity时,activity的以下方法会按以下顺序调用:onRestart()、onStart()和onResume()。

    查看this link了解详情

    【讨论】:

      【解决方案2】:

      onResume() 在活动仍在内存中时被调用。它不会再次创建,因为在onResume() 中您不会再次调用setContentView()

      【讨论】:

      • 关于这一点需要补充一点——onResume()onCreate() 之后直接调用,即使应用程序不在内存中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2012-02-12
      相关资源
      最近更新 更多