Java 未调用Android OnPOst Execute
我有一个异步任务。它运行sql查询。它应该自动转到onPostExecute,但并不总是转到那里。没有例外。日志也很好Java 未调用Android OnPOst Execute,java,android,Java,Android,我有一个异步任务。它运行sql查询。它应该自动转到onPostExecute,但并不总是转到那里。没有例外。日志也很好 class QueryDbTask extends AsyncTask<String, Void, Cursor> { protected Cursor doInBackground(String... params) { .... //sql query try { cur=activityObject.execSQL(Query);
class QueryDbTask extends AsyncTask<String, Void, Cursor> {
protected Cursor doInBackground(String... params) {
....
//sql query
try {
cur=activityObject.execSQL(Query);
}catch (Exception e) {
e.printstacktrace
}
return cur;}
protected void onPostExecute(Cursor result) {
}
类QueryDbTask扩展了异步任务{
受保护的游标doInBackground(字符串…参数){
....
//sql查询
试一试{
cur=activityObject.execSQL(查询);
}捕获(例外e){
e、 printstacktrace
}
返回cur;}
受保护的void onPostExecute(游标结果){
}
在什么条件下不会调用onPostExecute
我调试后发现它没有到达onPost Execute
两个异步任务是否可以同时进行模拟?
onPostExecute()
如果doInBackground()
从未完成,或者如果任务被中断/取消,那么将不会调用onCancelled()
。必须在onPostExecute()上添加@Override注释才能调用
@Override
protected void onPostExecute(Cursor result) {
....
}
在onPostExecute中你在做什么???你怎么知道它没有被调用?如果你调试它,在Background之后会发生什么?会执行什么?所以你在onPostExecute方法中什么都不做?甚至不是超级调用?是“return cur”doInBackground中的行调用了?是。doInBackground中有Retuen语句。您可以将代码发布到onPostExecute()方法中吗?请检查onCancelled()是否不是。2个asyc任务可以同时运行吗?当然可以,也应该。你不需要多个核心,这毕竟叫做多任务。事实上,除非你强迫他们这样做,否则他们不会。在3.0之前,他们是串行运行的。在3.0中,他们让他们并行运行。在4.0+中,他们将其切换回。我在一次会议上问了这个问题“我们把它改回来了,因为它破坏了很多东西。”好的,那么我知道为什么它不总是在运行……在我的onresume中,我调用这个异步任务……但是在onresume结束时,我根据一些条件调用另一个异步任务。所以当这些条件满足时,第二个异步任务在第一个任务完成之前启动。是这样吗?我最好测试这个场景,这取决于版本操作系统的版本。在过去:)在运行异步任务时调用异步任务会取消第一个。从版本开始?(我认为是2.2)它们应该串行执行。