0
在谷歌的應用程序內結算的例子(龍與地下城)存在的主要活動的onCreate創建服務實例:在Android上是否總是有一個計費服務實例?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mHandler = new Handler();
mDungeonsPurchaseObserver = new DungeonsPurchaseObserver(mHandler);
mBillingService = new BillingService();
mBillingService.setContext(this);
....
}
,並在服務由context.startService開始接收。
private void notify(Context context, String notifyId) {
Intent intent = new Intent(Consts.ACTION_GET_PURCHASE_INFORMATION);
intent.setClass(context, BillingService.class);
intent.putExtra(Consts.NOTIFICATION_ID, notifyId);
context.startService(intent);
}
會不會通知使用某種方式的onCreate創建的一些實例,或者它會創建該類運行的另一個實例作爲一個實際的服務?
在我瞭解的服務中,即開始運行,直到終止。在Dungones示例中,它是這樣完成的: public void unbind(){ 嘗試unbindService(this); } catch(IllegalArgumentException e){} } 但是這只是在onCreate方法中創建的實例上調用,所以如果有兩個實例第二個會泄漏? – janst
爲什麼你想知道圖書館的內部功能。你可以簡單地使用它。我正在使用這個庫:http://www.robotmedia.net/2011/06/android-billing-library-in-app-billing-made-simple/然後Google提供的那個更簡單。 – tasomaniac
但是,我認爲該服務執行網絡連接並更新內容,並在完成時終止。如果它啓動兩次,它將運行兩次並通知您的應用程序兩次。我認爲這不是一個大問題。沒有泄漏是可能的。 – tasomaniac