同一个包中的两个活动是否属于同一个线程?

时间:2013-02-16 14:29:09

标签: android android-activity native-code

我在同一个包下有两个活动(主要活动和另一个活动)。有时我需要用startActivityForResult开始其他活动。我有两个问题:

  1. 这两个活动是否属于同一个帖子?
  2. 如果我在主活动中加载本机库,我可以从其他活动访问本机方法吗?
  3. 关于问题2,假设有一个名为NativeMethod1()的本机方法。在主要活动中,像往常一样,我有以下声明:

    public native void NativeMethod1();
    

    并且在本机代码中我将正确声明一个函数(使用Java_com_mypackage_myapp_等...)。我为其他活动添加了类似的声明,并且在本机库中,我也添加了相应的方法声明。一切都很好,但我担心我会假设一些并非总是如此。这将导致无法预料的崩溃。

1 个答案:

答案 0 :(得分:1)

我不会在您的Activity课程中添加原生方法。相反,创建一个可以在所有活动中使用的单例类。

现在就线程而言,Android的UI模型是单线程(也就是主线程或UI线程),因此所有活动都在主线程上运行。

在执行长时间运行操作时不要阻止UI线程,因为这会导致ANR(活动无响应)情况,因此如果您在本机方法中做了一些奇特的事情,那么最好使用{{1或者AsyncTask或者提出自己的背景线程模型。

相关问题