複数のアクティビティで構成されるアプリがあります。購入できるアイテムは複数あります。各アクティビティ内に表示される内容は、購入したものによって異なる場合があります。私はメソッドを持っBillingReceiver
ています。purchaseStateChanged()
内部で行う必要があるのpurchaseStateChanged()
は、実行中のアクティビティがどれであっても、無効にしてください/更新しますか?スクリーン。これを行う標準的な方法はありますか?
編集: Simonのコメントを見て、答えを簡単にするために、BillingReceiverがpurchaseStateChanged()の呼び出しを受信すると、ActivityAまたはActivtyBの2つのアクティビティのいずれかが実行されている可能性があるとしましょう。これらのアクティビティvoid redraw_everything()
には両方とも、次のように宣言されているメソッドが含まれています。
void redraw_everything()
{
getWindow().getDecorView().invalidate();
}
コールバックを設定するための構文はわかりませんが、答えは次のようになると思います。
両方のアクティビティのonCreateで、次のように言う必要があります。
BillingReceiver.setupcallback(redraw_everything()); // ??
onDestroy()メソッドには次のようなものがあります。
BillingReceiver.setupcallback(null); // ??
次に、BillingReceiverで次のようなメソッドを作成します。
??? stored_method_to_call;
void setupcallback(???? method_to_call)
{
stored_method_to_call = method_to_call;
}
次に、purchaseStateChanged()内に次のようなコードがあります。
if (stored_method_to_call != null) // ?? not sure about syntax
{
stored_method_to_call(); // ?? not sure about syntax
}