2013-11-25 26 views
5

Với android 4.4 Tôi thấy rằng một số người dùng đang có notificationListenerService mà tôi đã triển khai sẽ ngừng hoạt động. Tôi đã thực sự nhìn thấy điều này bản thân mình quá.NotificationListenerService dừng và không thể khởi động lại mà không cần khởi động lại

Tôi chưa bao giờ quản lý để nắm bắt bất kỳ nhật ký nào trong khoảng thời gian xảy ra, nhưng ngay cả khi truy cập vào phần truy cập thông báo và tắt và bật lại quyền truy cập thông báo sẽ không hữu ích.

Có điều gì đó có thể khiến điều này xảy ra. Tôi không chắc liệu ứng dụng của tôi có bị lỗi hay không và gây ra điều này, nhưng ngay cả khi có vẻ như cách duy nhất để khởi động lại trình nghe là khởi động lại điện thoại. Có cách nào khác để bắt đầu ứng dụng của tôi nhận thông báo từ dịch vụ người nghe không?

Tôi cũng nhận được báo cáo về việc người dùng gặp sự cố này khi cập nhật phiên bản của ứng dụng.

Tôi đã thử đặt nhật ký vào phương thức onCreate/onDestroy để xem mọi thứ có được ghi khi dừng hay không, nhưng onUnbind, onDestroy được gọi, nhưng không có gì được nhập cho một trong các phương pháp này vì vậy tôi đoán chúng không nhận được được gọi khi nó dừng lại.

chỉnh sửa: tôi bắt một báo cáo lỗi sau này đã xảy ra và một phần thú vị của các bản ghi có vẻ là:

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 

Vì vậy, nó trông giống như có một lời cảnh báo đó là sau đó đi vào dừng dịch vụ và khởi động lại nó (nó xảy ra với ứng dụng của tôi và cũng là ứng dụng khác mà tôi đã cài đặt sử dụng quyền truy cập thông báo nhìn vào hai ứng dụng đang dừng)

Thực sự không chắc chắn tôi có thể làm gì để dừng việc dừng này

Trả lời

1

Bằng cách này có thể khởi động lại nó, nhưng nó cần khoảng 10s

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); 

    } 

Tác giả: Hugo

Link: https://www.zhihu.com/question/33540416/answer/113706620

Các vấn đề liên quan