Студия предлагает использовать private final ThreadLocal context = new ThreadLocal(); вместо private Context context; Это может предотвратить утечку памяти?
public class FetchEditTask extends AsyncTask<Void, Void, Pic> {
private Pic picResult = new Pic();
private final ThreadLocal<Context> context = new ThreadLocal<Context>();
private AsyncResponse output;
private int index;
public FetchEditTask(Context context, AsyncResponse output, int index) {
this.context.set(context);
this.output = output;
this.index = index;
}
@Override
protected Pic doInBackground(Void... params) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(context.get().getResources().getString(R.string.pixabay_api_link))
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService client = retrofit.create(ApiService.class);
Call<Pic> call;
call = client.getEditorPic(index);
call.enqueue(new Callback<Pic>() {
@Override
public void onResponse(Call<Pic> call, Response<Pic> response) {
try {
if (!response.isSuccessful()) {
Log.d(context.get().getResources().getString(R.string.No_Success), response.errorBody().string());
} else {
picResult = response.body();
if (picResult != null) {
output.processFinish(picResult);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<Pic> call, Throwable t) {
Toast toast = Toast.makeText(context.get(), context.get().getResources().getString(R.string.wrong_message), Toast.LENGTH_SHORT);
toast.show();
}
});
return picResult;
}
}
Пытаюсь создать бота для телеграммКласс Bot:
Есть 2 отдельных пакета и в каждом по 1му классу (условно 1c и 2c)
Не могу запушить проект на гитхабПользуюсь Intelliji Idea
Подскажите пожалуйста как реализовать возможность вставки скопированного в системный буфер обмена файлаКопирую так: