我在同一个包下有两个活动(主要活动和另一个活动)。有时我需要用startActivityForResult
开始其他活动。我有两个问题:
关于问题2,假设有一个名为NativeMethod1()
的本机方法。在主要活动中,像往常一样,我有以下声明:
public native void NativeMethod1();
并且在本机代码中我将正确声明一个函数(使用Java_com_mypackage_myapp_等...)。我为其他活动添加了类似的声明,并且在本机库中,我也添加了相应的方法声明。一切都很好,但我担心我会假设一些并非总是如此。这将导致无法预料的崩溃。
答案 0 :(得分:1)
我不会在您的Activity
课程中添加原生方法。相反,创建一个可以在所有活动中使用的单例类。
现在就线程而言,Android的UI模型是单线程(也就是主线程或UI线程),因此所有活动都在主线程上运行。
在执行长时间运行操作时不要阻止UI线程,因为这会导致ANR(活动无响应)情况,因此如果您在本机方法中做了一些奇特的事情,那么最好使用{{1或者AsyncTask
或者提出自己的背景线程模型。