【发布时间】:2018-04-22 02:21:56
【问题描述】:
无论是在 Android 还是 Java 中,当我们调用 AsyncTask 或 SwingWorker 时,它可以使用内部类或嵌套类。我最担心 Android 设备中的内存泄漏问题。如果您采用内部类,则会自动传递活动引用。通过采用嵌套类,您必须手动传递活动引用,因此内部/嵌套基本上做同样的工作。
我遇到的一个问题是活动终止,当AsyncTask 结束时,它会破坏应用程序。我知道并且使用过无头片段,但这里我的问题是关于在 Android 和 Java 中使用内部/嵌套类,你推荐哪一个?例如,我在JFrame 中执行这个任务,当然我想使用一个特定的类来执行特定的任务(每个任务一个类),而不是放置内联代码。
new SwingWorker<Void, Void>() {
private Exception exception = null;
@Override
protected Void doInBackground() throws Exception {
try {
callback.login();
} catch(SQLException e) {
exception = e;
}
return null;
}
@Override
protected void done() {
if(exception != null) {
// show fail
} else {
update();
}
}
}.execute();
}
【问题讨论】:
标签: java android multithreading android-asynctask swingworker