小编Al *_*one的帖子

程序包管理器已死亡由android.os.DeadObjectException引起

我在我的应用程序中偶然发现了Crashlytics发送的异常.客户端Android版本是5.1.1.我收到以下Stack跟踪:

致命异常:java.lang.RuntimeException包管理器已经死亡

android.app.ApplicationPackageManager.getPackageInfo (ApplicationPackageManager.java:160)
com.google.android.gms.common.zzp.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.zzf.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.api.internal.zzar.zzaib (Unknown Source)
com.google.android.gms.common.api.internal.zzay.run (Unknown Source)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.internal.zzbhc.run (Unknown Source)
java.lang.Thread.run (Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

由android.os.DeadObjectException引起

android.os.BinderProxy.transactNative (Binder.java)
android.os.BinderProxy.transact (Binder.java:496)
android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo (IPackageManager.java:2169)
android.app.ApplicationPackageManager.getPackageInfo (ApplicationPackageManager.java:155)
com.google.android.gms.common.zzp.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.zzf.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable (Unknown Source)
com.google.android.gms.common.api.internal.zzar.zzaib (Unknown Source)
com.google.android.gms.common.api.internal.zzay.run (Unknown Source)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.internal.zzbhc.run (Unknown Source)
java.lang.Thread.run (Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

背景信息:

我正在开发具有GPS功能的Firebase应用程序.我已经在前台服务中实现了Google Location API,到目前为止,这个错误仅发生在一个客户端故意运行我的应用程序的Foreground Service超过10天.在我的前台服务中我没有直接以任何方式调用包管理器.我能给你的唯一提示是我从Crashlytics收到的最后一个日志

@Override
    public void onConnectionSuspended(int i)
    { …
Run Code Online (Sandbox Code Playgroud)

android google-play

16
推荐指数
1
解决办法
796
查看次数

JobScheduler Android Oreo问题

在我当前的公司申请中,我有一个ForegroundService,在工作人员值班时运行(登录到应用程序).重要的是要保持这种前景的服务运行时用户登录是很重要的.为了从那里此前台服务被莫名其妙地杀害案件恢复(用户任务滑动意外或系统杀灭)香港专业教育学院实施与的jobscheduler周期性工作,这将重新激活ForegroundService在它得到的情况下关掉.这项技术在Android 8 OREO之前效果很好.START_STICKY和其他技术本身并不适合我.

在Android 8中,一旦前台服务被杀死,定期作业也会被杀死.我在logcat中收到通知,不允许该作业运行.根据我的理解,即使应用程序处于后台或被杀,乔布斯也能够运行.它以前所未有的方式开发OREO设备.

据我所知,我可以通过在应用设置中启用"自动启动"选项来解决这个问题.但由于没有办法知道员工是否认真,这也不是一件可靠的事情.

所以我的问题: - 为什么Job Scheduler在Android 8中停止工作? - 我可以使用任何其他可靠的技术让我的ForegroundService从ANDROID OREO中关闭恢复吗?

香港专业教育学院读https://medium.com/exploring-android/exploring-background-execution-limits-on-android-oreo-ab384762a66c,但没有回答我的问题

非常感谢你

android foreground-service android-jobscheduler android-8.0-oreo

6
推荐指数
1
解决办法
910
查看次数

Android rxjava2 Flowable with Compositedisposable

我对 Flowables 有问题并将它们添加到复合材料中。我想从 Observable 切换到 Flowable,因为该操作可能会发出 1000 个或更多的值。我对 rxjava2 有点缺乏经验,所以如果这个问题很愚蠢,请原谅我:)

到目前为止,我使用了这样的 observable:

 public Observable<String> uploadPictureRx(String path)
    {
        return Observable.create(new ObservableOnSubscribe<String>()
        {
            @Override
            public void subscribe(ObservableEmitter<String> e) throws Exception
            {
                Uri file = Uri.fromFile(new File(path));
                String segment = file.getLastPathSegment();
                UploadTask uploadTask = reference.child("SomeChild").child(segment).putFile(file);


                uploadTask.addOnFailureListener(new OnFailureListener()
                {
                    @Override
                    public void onFailure(@NonNull Exception exception)
                    {
                        e.onError(exception);
                    }
                }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>()
                {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
                    {                           
                        //noinspection VisibleForTests
                        downloadUrl = taskSnapshot.getDownloadUrl();
                        String url = downloadUrl.getPath();
                        e.onNext(url);
                        e.onComplete();
                    }
                }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>()
                {
                    @Override
                    public …
Run Code Online (Sandbox Code Playgroud)

android observable rx-java

1
推荐指数
2
解决办法
6728
查看次数