Java 在查看寻呼机加载所有数据之前按后退按钮时应用程序崩溃
当我进入我的活动并在数据完全加载之前按下后退按钮时,我遇到了一个严重的问题,我的活动中有一个视图寻呼机,用于加载图像。我的应用程序崩溃,这是我得到的例外: 带活页夹:从活页夹存根捕获运行时异常 实施 位于的java.lang.NullPointerException android.inputmethodservice.IIInputMethodWrapper.setSessionEnabled(IIInputMethodWrapper.java:280) 在 com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129) 位于android.os.Binder.execTransact(Binder.java:404) dalvik.system.NativeStart.run(本机方法) 我正在使用广播接收器更新ui,并在Java 在查看寻呼机加载所有数据之前按后退按钮时应用程序崩溃,java,android,android-activity,Java,Android,Android Activity,当我进入我的活动并在数据完全加载之前按下后退按钮时,我遇到了一个严重的问题,我的活动中有一个视图寻呼机,用于加载图像。我的应用程序崩溃,这是我得到的例外: 带活页夹:从活页夹存根捕获运行时异常 实施 位于的java.lang.NullPointerException android.inputmethodservice.IIInputMethodWrapper.setSessionEnabled(IIInputMethodWrapper.java:280) 在 com.android.inter
onPause()
中注销接收器
这是我的暂停方法
@Override
protected void onPause() {
if (updateUIReciver != null)
unregisterReceiver(updateUIReciver);
super.onPause();
}
"
这是我用来下载位图图像的库
new VigerPDF(this)
.initFromFile(file, new OnResultListener() {
@Override
public void resultData(Bitmap bitmap) {
bitmaps.add(bitmap);
try {
Intent intent = new Intent();
intent.setAction("refresh");
OpenUrlActivity.this.sendBroadcast(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void progressData(int i) {
}
@Override
public void failed(Throwable throwable) {
throwable.printStackTrace();
}
});
这次事故似乎与问题中的代码无关。您是否在项目中的某个位置使用绑定服务而忘记在onStop中解除绑定?是的,我有一个加载数据的服务我将更新我的问题可能库VigerPDF有一些取消()或清除()方法来关闭异步工作?我认为它没有任何方法来停止异步任务尝试实现新的viewmodel设计模式并在intentservice中加载数据。从intentservice内部更新livedata,并在活动中实现数据更改的观察者。对于像您这样的案例,这种设计模式完全支持生命周期。
new VigerPDF(this)
.initFromFile(file, new OnResultListener() {
@Override
public void resultData(Bitmap bitmap) {
bitmaps.add(bitmap);
try {
Intent intent = new Intent();
intent.setAction("refresh");
OpenUrlActivity.this.sendBroadcast(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void progressData(int i) {
}
@Override
public void failed(Throwable throwable) {
throwable.printStackTrace();
}
});