Где получить действие, в котором я нахожусь в данный момент?

#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 также может получать доступ к нестатическим полям.