вызывает context.getApplicationContext из потока потокобезопасным? - PullRequest
0 голосов
/ 16 июня 2019

Я написал следующий код для чтения части данных из базы данных, но я не уверен, является ли этот код потокобезопасным или нет, поскольку он вызывает c.getApplicationContext из потока, который не является потоком пользовательского интерфейса.

 public class chat extends AppCompatActivity
{
  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chat);
        final Context myContext = this;
        AgentAsyncTask zx = new AgentAsyncTask(myContext);
        zx.execute();

        }

 private static class AgentAsyncTask extends AsyncTask<Void, Void, List<Message>> {

        private Context c;
        public AgentAsyncTask(Context c) {
         this.c = c;

        }

        @Override
        protected List<Message> doInBackground(Void... params) {
            List<Message> x = AppDatabase.getAppDatabase(c.getApplicationContext()).userDao().getAll();
            return x;
        }

        @Override
        protected void onPostExecute(List<Message> agentsCount) {
            Toast.makeText(c, agentsCount.get(0).message, Toast.LENGTH_SHORT).show();
        }
    }
}

Этот поток кода безопасен? строка, которую я подозреваю, не является поточно-безопасной:

List<Message> x = AppDatabase.getAppDatabase(c.getApplicationContext()).userDao().getAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...