Ваше решение не работает, потому что progressArray является переменной экземпляра и при вызове
ListViewLoader lvl = new ListViewLoader
, который создает новый экземпляр с progressArray установлен в значение по умолчанию (NULL в этом случае). Создание progressArray static может быть быстрым решением, но помните, что вы будете сильно зависеть от порядка, в котором активность и служба будут обращаться к этому массиву и могут быть сброшены, когда ваша деятельность будет уничтожена системой. Я сильно отговариваю вас от этого.Вместо этого, пожалуйста, рассмотреть вопрос о расширении Application class и реализации списка инициализации/доступ там, как:
public class MyApplication extends Application {
public String progressArray[][] = new String[3][3];
}
Тогда объявим его в AndroidManifest как:
<application
android:name=".MyApplication"
android:label="@string/app_name"
android:icon="@drawable/icon">
Тогда как от вашей деятельности и услуг, которые вы можете получить, что, позвонив по телефону
((MyApplication) getApplication()).progressArray
Это единственный способ разделить состояние между действиями и услугами в одном приложении, о котором я знаю, ng, отправляя сообщения туда и обратно, чтобы сохранить согласованное состояние (что может быть нетривиальной задачей) и не использовать синглтоны (which is anti-pattern as you probably know).
Но, пожалуйста, имейте в виду, что необходимость совместного использования изменяемых данных таким образом может быть намеком на то, что ваш дизайн нуждается в улучшении.
Спасибо, что выяснил мой доступ к путанице. Я снова посмотрел на дизайн. Часть моей проблемы заключалась в том, что я дождался периода, когда – ron
Ooops продолжил период сна, который оказался ненадежным, и поэтому я пытался использовать всевозможные альтернативы. Наконец, я остановился на повторяющемся сигнале тревоги, который кажется надежным и слушателем, который находится в том же классе, что и массив, так что теперь у меня есть доступ к исходному экземпляру. Еще раз спасибо за разъяснение re access, очень полезно – ron