2016-08-06 4 views
0

implementieren. Zuerst habe ich die Idee von http://www.tutorialsface.com/2016/05/implementing-remove-ads-in-app-purchases-in-android-tutorial-example/ mit einer separaten Klasse für den Umgang mit InApp-Abrechnung verwendet.Kann die OnActivityResult-Methode nicht ordnungsgemäß für die In-App-Abrechnung in Android

Meine Klasse, von der ich beginne die Abrechnung eine bereits onActivityResult Methode hatte, die habe ich es zu:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 

    if (mHelper == null) return; 


    if (!mHelper.handleActivityResult(requestCode, resultCode, data)) 
    { 

     if(requestCode==3) 
     { 
      // Construct the data source 
      ArrayList<Service> arrayOfServices = new ArrayList<Service>(); 
      arrayOfServices = db.getAllServices(); 
      // Create the adapter to convert the array to views 
      CatalogueAdapter adapter = new CatalogueAdapter(this, arrayOfServices); 
      // Attach the adapter to a ListView 
      myServices.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 
     } 

     if (requestCode == 1111 && resultCode == RESULT_OK) 
     { 
      String emailAddress = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 

      Calendar c = Calendar.getInstance(); 
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd_HH:mm"); 
      String formattedDate = df.format(c.getTime()); 
      possibleEmail=md5(emailAddress + formattedDate); 

      startBilling.purchaseRemoveAds(possibleEmail); 

     } 

    }else 
     { 
     //Log.d(TAG, "onActivityResult handled by IABUtil."); 
     } 

} 

Zunächst einmal möchte ich die wichtigsten Google-Konto erhalten und verschlüsselt zusammen mit dem aktuellen Datum und Starten Sie dann den Abrechnungsprozess. Aber vor dem Dialog, von dem ich die E-Mail bekomme, habe ich den Dialog von InApp Billing.

Also dachte ich, die Methode von StartBilling innerhalb der Aktivität Ergebnis zu platzieren.

Aber selbst wenn ich den E-Mail-Dialog zuerst bekomme, bekomme ich eine Null auf mHelper, damit nichts als nächstes passiert. Wie kann ich das beheben?

Soll ich Sie wie folgt vor ?:

@Override 
protected void onResume() { 
    super.onResume(); 
    if(possibleEmail!=null) 
    { 
     startBilling.purchaseRemoveAds(possibleEmail); 
    } 
} 
+0

Möglicherweise nicht verwandt: Sie fehlt ein 'super.onActivityResult' Aufruf am Anfang. –

+0

Warum brauche ich das super.onActivityResult am Anfang? – NoviceUser

+0

Ohne es 'OnActivityResult' in Fragmenten wird nicht funktionieren. Wenn du sagen willst "Ich habe keine Fragmente", eines Tages wirst du und du wirst dich wundern, warum arbeiten sie nicht. –

Antwort

0

Null Objektverweis kam nicht die mHelper onCreate Methode meiner zweiten Aktivität initialisiert, so habe ich

mHelper = startBilling.mHelper; 
Verwandte Themen