2013-04-22 2 views
0

앱에 대한 구독 구매를 만들고 있습니다. 그리고 저는 원래 다음과 같은 것을 가지고있었습니다 :Android 결제 - 버튼 클릭이 아닌 경우 onUpgradeAppButtonClicked() 메소드를 호출하려면 어떻게해야하나요?

// CREATE THE SUBSCRIBE BUTTON 
    Button subscribe = (Button)findViewById(R.id.subscribe); 
    subscribe.setOnClickListener(new Button.OnClickListener() 
    { 
     public void onClick(View v) 
     {    
      onUpgradeAppButtonClicked (); 
     } 
    });     

public void onUpgradeAppButtonClicked() 
{ 
    Log.d(TAG, "Buy button clicked; launching purchase flow for upgrade."); 
    setWaitScreen(true); 
    mHelper.launchPurchaseFlow(this, SKU_SUBSCRIPTION, RC_REQUEST, mPurchaseFinishedListener); 
} 

그러나 나는 IABHelper가 비동기 적으로 설정되어야한다고 읽었습니다. 버튼 클릭에서이 메서드를 호출하면 올바르지 않을 수 있습니다.

그러나 버튼 클릭이 아닌 경우 어떻게 호출 될까요?

감사합니다.

답변

1

시간이 좀 걸릴 것이라고 생각했기 때문에 비동기 적으로 실행해야 UI가 고정되지 않습니다. 따라서 버튼 클릭에서 직접 호출 할 수는 있지만 직접 호출하지는 마십시오. 대신 onUpgradeAppButtonClicked() 메소드에서 AsyncTask 또는 별도의 Thread 등을 사용하여 mHelper.launchPurchaseFlow()...을 비동기 적으로 실행하는 무언가를 수행하십시오.

유명한 Painless Threading Article은 항상 이와 같이 매우 편리합니다.

+0

감사합니다. -하지만 그것이 현재 내가하고있는 것입니다. 제 생각에는. 그게 내가 전부다는 뜻인가? :) 또한, 그들이 구독을 취소해야하는 경우, 나는 방금 같은 방법을 시작해야합니까? – Genadinik

+0

예, 그렇습니다. 탈퇴에 관해서는, 나 자신을 청구하는 app에서 결코 구현하지 않은 것처럼, 나는 모른다. 하지만 기본적으로 말하지만, 제대로 작동한다면 괜찮습니다. – Ridcully