2017-05-23 18 views
0

我與我的現有綁定的服務失去其粘結劑性能(粘結劑變成佈置出於某種原因)的問題。所以我又回到了一步,重新學習了Bound Servcie。我從以下頁面的Xamarin下載了BoundServiceDemo應用程序: https://developer.xamarin.com/guides/android/application_fundamentals/services/part_2_-_bound_services/java.lang.IllegalArgumentException異常:服務沒有登記 - Xamarin BoundServiceDemo崩潰

該項目已構建並運行。但我注意到,如果我做的Unbind from serviceBind to service序列(通過項目按鈕點擊),第三stop將始終如一地崩潰。綁定到服務後,按下Get timestamp from service不會阻止發生崩潰。堆棧跟蹤如下:

10月5日至23日:33:21.334 11788 11788 d AndroidRuntime:關閉VM

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:致命異常:主

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:過程: com.xamarin.xample.boundservicedemo,PID:11788

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime: 的java .lang.IllegalArgumentException:服務未註冊: [email protected]7c0e

05-23 10:33:21.344 11788 11788ËAndroidRuntime:在 android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1156)

05-23 10點33: 21.344 11788 11788ËAndroidRuntime:在 android.app.ContextImpl.unbindService(ContextImpl.java:1452)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.content.ContextWrapper.unbindService(ContextWrapper的.java:644)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 mono.android.view.View_OnClickListenerImplementor.n_onClick(母語 方法)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.view.View.performClick(View.java:5697)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.widget .TextView.performClick(TextView.java:10814)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.view.View $ PerformClick.run(View.java:22526)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.os.Handler.handleCallback(Handler.java:739)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 機器人。 os.Handler.dispatchMessage(Handler.java:95)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在(Looper。)android.os.Looper.loop(Looper。的java:158)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 android.app.ActivityThread.main(ActivityThread.java:7229)

10月5日至23日:33:21.344 11788郵政編碼11788èAndroidRuntime:在 java.lang.reflect.Method.invoke(本機方法)

10月5日至23日:33:21.344郵政編碼11788郵政編碼11788èAndroidRuntime:在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:1230)

10月5日至23日:33:21.344 11788 11788ËAndroidRuntime:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

10月5日至23日:33:21.344 4699 4724W¯¯VirtualScreenManagerService: moveTaskBackToDisplayIfNeeded():頂部活動或應用程序是空

十月5日至23日:33:21.354 4699 4724 d InputDispatcher:聚焦應用 設置爲:XXXX

我使用VS2015與Xamarin版本4.5.0.443。我希望這不是Xamarin的錯誤,因爲我的應用程序在其生命週期中會執行多個綁定/解除綁定服務。有人可以擺脫一些光?謝謝。

回答

0

我聯繫了示例代碼,湯姆Opgenorth的作者,他認爲,這是事件處理程序爲導致崩潰Click事件動態設定。事件處理程序現在已被修改爲在活動開始時註冊一次。它已經解決了這個問題。

繼湯姆的信息,我發現,RestartServiceButton點擊事件處理程序被註冊,每次停止服務按鈕點擊,但直到應用程序停止沒有得到註冊。這意味着RestartServiceButton點擊事件會爲每次後續點擊觸發多次。所以,這個問題也可以通過從事件本身註銷來解決火災時

void RestartServiceButton_Click(object sender, System.EventArgs e) 
{ 
    ... 
    restartServiceButton.Click -= RestartServiceButton_Click; 
} 

湯姆應該儘快上傳更新後的版本

相關問題