【问题标题】:Android NDK - Save "native objects" between native code callsAndroid NDK - 在本机代码调用之间保存“本机对象”
【发布时间】:2012-03-13 18:17:10
【问题描述】:

现在我有一个本地函数,它可以做到这一点:

Object o = new Object();
while (!o.done()) { o.compute(); }
return o.result();

这种计算可能需要一段时间,我希望 Android 中的 UI 能够通过某种进度条进行更新。所以我需要的是三个不同的原生函数,上面的每一步都有一个。我遇到的问题是如何在调用之间保存“本机对象”。有什么建议吗?

谢谢

【问题讨论】:

  • 尝试在您的 _ 中使用static Object *o;。 .cpp 文件。有一种方法可以实例化o。如果仍然需要调用o->compute() 的一种方法。完成后记得用另一种方法delete o;

标签: android android-ndk java-native-interface


【解决方案1】:

您的 Android NDK C 代码静态函数与普通应用程序编程中的静态函数一样。只要当前进程(应用程序)正在运行,您的数据就会被保留。如果您有一个方法会进行大量处理,请从 Java 线程调用它以在后台运行,如下所示:

  new Thread(new Runnable()
  {
      public void run()
      {
      <call native method here>
      }
  }).start();

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2016-01-19
    • 2012-11-02
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多