2013-11-25 15 views
5

Android 4.4 ile bazı kullanıcıların bildirimde bulunmaya başladığını bildiriyorum. Bunu kendim de gördüm.NotificationListenerService durdurma ve yeniden başlatmadan yeniden başlatılamıyor

Olmadığı zaman zarfında herhangi bir günlük kaydını yakalamayı başaramadım, ancak bildirim erişimi bölümüne girip bildirim erişimini kapatıp tekrar açmamaya yardımcı olmadı.

Bunun olmasına neden olabilecek bir şey var mı? Uygulamamın çökmesine ve buna neden olup olmadığından emin değilim, ancak olsa bile dinleyiciyi yeniden başlatmanın tek yolu telefonu yeniden başlatmaktır. Uygulamamın dinleyici hizmetinden bildirim almasını başlatmanın başka bir yolu var mı?

Ayrıca, uygulamanın sürümünü güncellerken bu sorunu alan kullanıcıların raporlarını da aldım.

Durduğunda bir şeyin günlüğe kaybolacağını görmek için onCreate/onDestroy yöntemine günlük eklemeye çalıştım, ancak onUnbind, onDestroy çağrıldı, ancak bu yöntemlerden herhangi biri için hiçbir şey girilmiyor. Bir kez durdu durdu. Bu olmamış ve günlüğün ilginç parçası olmak bakar sonra bir hata raporu yakalanan : düzenlemek

ardından hizmeti durdurma giriyor bir uyarı var gibi
12-30 15:33:58.731 16194 16194 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendOrderedBroadcast:1192 android.app.ContextImpl.sendOrderedBroadcast:1183 android.content.ContextWrapper.sendOrderedBroadcast:390 com.android.settings.applications.ProcessStatsDetail.checkForceStop:314 com.android.settings.applications.ProcessStatsDetail.onResume:108 
12-30 15:33:58.741 780 780 V NotificationService: disabling notification listener for user 0: ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NotificationListener} 
12-30 15:33:58.741 780 780 V NotificationService: disabling notification listener for user 0: ComponentInfo{lovetere.flashme/lovetere.flashme.accessibilityservice.ServicePostKitKat} 
12-30 15:33:58.741 780 780 V NotificationService: enabling notification listener for user 0: ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NotificationListener} 
12-30 15:33:58.741 780 780 V NotificationService: enabling notification listener for user 0: ComponentInfo{lovetere.flashme/lovetere.flashme.accessibilityservice.ServicePostKitKat} 
12-30 15:33:58.751 1171 1171 D MyApp:NotificationListener: [NotificationListener] onDestroy 

Yani görünüyor ve (o da benim app ile duruyoruz iki bakarak bildirim erişimi kullanan ben yüklediğiniz diğer uygulamayı olur) yeniden başlatmayı

bunu durdurma durdurmak için neler yapabileceğini Gerçekten emin değilim

cevap

1

Bu şekilde yeniden başlatabilirsiniz, ancak 10s hakkında ihtiyacı

private void toggleNotificationListenerService() { 
     PackageManager pm = getPackageManager(); 
     pm.setComponentEnabledSetting(new ComponentName(this, com.xinghui.notificationlistenerservicedemo.NotificationListenerServiceImpl.class), 
       PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

     pm.setComponentEnabledSetting(new ComponentName(this, com.xinghui.notificationlistenerservicedemo.NotificationListenerServiceImpl.class), 
       PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 

    } 

Yazar: Hugo

Bağlantı: https://www.zhihu.com/question/33540416/answer/113706620