Я работаю над приложением, мне нужно использовать определенный тип данных во многих действиях. поэтому я попытался сделать одноэлементный класс и определить там свой метод GET, скажем getProductHeads
, это модифицированный вызов возвращает список моей деятельности, где я его вызываю.
Проблема, с которой я сталкиваюсь, заключается вв самый первый раз, когда я запускаю приложение ---> запускаю свою операцию добавления продукта --- которая вызывает этот метод getProductHeads
, возвращает список с размером 0, а когда я пытаюсь сделать это снова, возвращаясь и снова запуская операциюон дает мне данные, и он продолжает давать данные, пока приложение не перезапустится.
Я немного новичок в этом и не могу получить это, я проверил это, но не могу найти много. Ниже мой синглтон, и где я вызываю этот метод.
public class ProductHeads {
private static ProductHeads mInstance;
public List<ProductHeadsModel> productHeadsModels = new ArrayList<ProductHeadsModel>();
public static ProductHeads getInstance() {
if(mInstance == null) {
if (mInstance == null)
mInstance = new ProductHeads();
}
return mInstance;
}
private ProductHeads() {
// productHeadsModels = new ArrayList<ProductHeadsModel>();
}
public List<ProductHeadsModel> getProductHeads(String licenskey, Context context){
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectTimeout(40, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface requestInterface = retrofit.create(RequestInterface.class);
Call<List<ProductHeadsModel>> call = requestInterface.getProductHeads(licenskey);
call.enqueue(new Callback<List<ProductHeadsModel>>() {
@Override
public void onResponse(Call<List<ProductHeadsModel>> call, Response<List<ProductHeadsModel>> response) {
productHeadsModels = response.body();
if (productHeadsModels != null){
}else Toast.makeText(context, "No Product head response found", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<List<ProductHeadsModel>> call, Throwable t) {
Toast.makeText(context, "Product Heads::::"+t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
});
return this.productHeadsModels;
}
}
Я называю это так из своей деятельности .....
private List<ProductHeadsModel> productHeadsModels;
productHeadsModels = ProductHeads.getInstance().getProductHeads(mlicenseID, AddProduct.this);
Я не знаю, подходит ли мой подходэто плохо или в чем проблема. Буду очень признателен за любую помощь или предложение.
Спасибо !!!!
:::: РЕДАКТИРОВАТЬ ::::: вот мои первые данные ответа, которые появляются хорошо, но список, которыйвозвращается пусто
2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Форма продукта 2019-11-04 13:38:03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Цвет 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Тип финиша 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Дата создания 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL:Дизайнер 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Supervisor 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E/ CALL CALL: Цена 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Склад Кол-во 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Качество 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Alias Code 2019-11-04 13: 38: 03.0114153-4153 / com.ht.dell.qr_app E / CALL CALL: Комментарий 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: CBM 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Вес 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: CFT 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Загружаемость 20 '2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E /CALL CALL: Загружаемость 40 '2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Загружаемость 40'HC