Как после остановки заново запустить BillingClient?
Когда программа на protected void onPause() я останавливаю BillingClient . Через mBillingClient.endConnection();
Как его заново запустить не пересоздавая то есть не вызывать метод mBillingClient();
А написать что то подобное как в onPause() только в onResume() Чтобы восстановить работу .
public class MainActivity1_2 extends AppCompatActivity {
private Vibrator Vibro;
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
mBillingClient.endConnection();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity1_2);
mBillingClient();
}
private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>();
private String load = "1_1_1";
private BillingClient mBillingClient;
public void mBillingClient() {
mBillingClient = BillingClient.newBuilder(this).setListener(new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK && purchases != null) {
//сюда мы попадем когда будет осуществлена покупка
List<Purchase> purchasesList = queryPurchases();
for (int i = 0; i < purchasesList.size(); i++) {
String purchaseId = purchasesList.get(i).getSku();
//
if (TextUtils.equals(load, purchaseId)) {
payComplete();
}
}
}
}
}).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) {
if (billingResponseCode == BillingClient.BillingResponse.OK) {
//здесь мы можем запросить информацию о товарах и покупках
querySkuDetails();
}
}
@Override
public void onBillingServiceDisconnected() {
//сюда мы попадем если что-то пойдет не так
}
});
}
private void querySkuDetails() {
SkuDetailsParams.Builder skuDetailsParamsBuilder = SkuDetailsParams.newBuilder();
List<String> skuList = new ArrayList<>();
skuList.add(load);
skuDetailsParamsBuilder.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
if (responseCode == 0) {
for (SkuDetails skuDetails : skuDetailsList) {
mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);
}
vibro();
}
}
});
}
public void payComplete()
{ }
private List<Purchase> queryPurchases() {
Purchase.PurchasesResult purchasesResult = mBillingClient.queryPurchases(BillingClient.SkuType.INAPP);
return purchasesResult.getPurchasesList();
}
///////
public void Buy (View view){
Vibro = (Vibrator)this.getSystemService(VIBRATOR_SERVICE);
Vibro.vibrate(50);
BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
.setSkuDetails(mSkuDetailsMap.get(load))
.build();
mBillingClient.launchBillingFlow(this, billingFlowParams);
}
public void vibro(){
Vibro = (Vibrator)this.getSystemService(VIBRATOR_SERVICE);
Vibro.vibrate(50);
}
}