#android #android-activity #java-native-interface
#Android #android-активность #java-native-interface
Вопрос:
Вот мой случай
1. запустите основное и единственное действие моего приложения, в момент запуска оно почти пустое
2. привяжитесь к локальной службе, которая является почти оболочкой моей устаревшей родной библиотеки
3. все представления будут динамически создаваться во время выполнения
4. именно служба определяет, когда и как создавать представления, конечно, в основном в собственном коде C и вызовах JNI
Итак, мне необходимо получить контекст, фактически текущую активность, поскольку каждый конструктор представлений требует Context в качестве параметра. Но как я могу получить контекст и кэшировать его, если это возможно?
Спасибо.
Ответ №1:
Привяжитесь к сервису в вашем действии и передайте контекст каким-либо методом, например
service.setActivityContext(this);
Комментарии:
1. Сервис должен сохранить ее как статическую, и тогда машинный код сможет получить к ней доступ с помощью GetObjectField, я прав? Есть ли другой способ получить его динамически вместо статического файла?
2. Почему вы думаете, что она должна быть статичной? Этого не должно быть. GetObjectField также может получать доступ к нестатическим полям.