Android Как читать актив извне основного вида деятельности

Мне нужно иметь возможность называть readAsset из-за основной активности моего приложения. Я слышал, как люди говорили о необходимости проходить Контекст вокруг, но язык был очень расплывчатым. Может ли кто-нибудь описать шаги, необходимые для добавления возможности вызова readAsset в существующий класс, который не является основным видом деятельности? Создание публичной функции в основном действии и вызов других, которые не будут работать как место, в которое мне нужно добавить readAsset, находится в отдельном потоке.

 public class NonActivity { public void doStuff(Context c) { //read from assets c.getAssets(); //use assets however } } 

Не знаете, что вы просите, но, может быть, что-то вроде этого? Просто добавьте к существующему классу и используйте контекст для извлечения активов. В вашей деятельности вызовите метод следующим образом:

 public class MyActivity extends Activity { public void OnCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NonActivity n = new NonActivity(); n.doStuff(this); } } 

Обратите внимание, что все обращения к файловой системе должны выполняться с основного потока, поэтому вы не должны читать их во время onCreate (). Вместо этого вы должны использовать другой поток, например, предоставленный AysncTask.