Android:在异步任务期间处理后退按钮

2024-04-05

我有一个显示列表视图的活动。单击项目时,将启动第二个活动,该活动运行一个 AsyncTask,根据单击的项目获取远程 URL,解析结果,然后将这些结果显示到另一个列表视图中。当异步任务运行时,我有一个“正在加载”视图,仅显示图像和文本。问题是,如果我启动运行异步任务的活动,然后按回键并启动所述活动的另一个实例,我会强制关闭。

我努力了


private class getlist extends AsyncTask implements OnDismissListener{
     ...
     @Override
     public void onDismiss(DialogInterface arg0) {
          this.cancel(true);
     }
}  

但问题仍然存在。

我也放了



if(!isCancelled()){
  setContentView(R.layout.list);
  ...
  etc.

}
  

进入我的 onPostExecute 调用,但这要么不会阻止视图切换,要么问题是其他问题。

logcat 显示“已恢复时出现意外恢复..收到 RemoteException 发送 setActive(false) 通知” 然后在日志中再往下一点,“java.net.SocketTimeoutException:套接字未连接”

我该如何解决这个问题?

update:



E/AndroidRuntime(19379): Uncaught handler: thread AsyncTask #2 exiting due to uncaught exception
E/AndroidRuntime(19379): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(19379):        at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(19379):        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime(19379):        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime(19379):        at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime(19379): Caused by: java.lang.NullPointerException
E/AndroidRuntime(19379):        at com.metatroid.android.swim.ThreadViewer.getPosts(ThreadViewer.java:153)
E/AndroidRuntime(19379):        at com.metatroid.android.swim.ThreadViewer$getlist.doInBackground(ThreadViewer.java:70)
E/AndroidRuntime(19379):        at com.metatroid.android.swim.ThreadViewer$getlist.doInBackground(ThreadViewer.java:1)
E/AndroidRuntime(19379):        at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask$Sync.innerRun  

这个问题的实际解决方案是使用 ThreadSafeClientConnManager 作为 ClientConnectionManager

e.g.



BasicHttpParams params = new BasicHttpParams();
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
final SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory();
schemeRegistry.register(new Scheme("https", sslSocketFactory, 443));
ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);
DefaultHttpClient httpclient = new DefaultHttpClient(cm, params);
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:在异步任务期间处理后退按钮 的相关文章

  • Signal R Native Android 应用程序协商失败

    我正在尝试创建一个可以连接到我的基本 SignalR Hub 的 Android 应用程序 它只是一个基本的集线器文件 我想用它来测试一些东西 但到目前为止我还没有运气 有人可以看看我做错的事情吗 每次我尝试运行它时 我都会收到以下堆栈竞赛
  • 我在尝试连接 FTP 服务器时收到“无法连接到主机”Logcat 消息,我做错了什么?

    我正在 Android 上开发一个应用程序 它连接到 FTP 服务器来上传和下载文件 为了建立连接 我使用基于 apache commons net 库的 FTPClient 类this http androiddev orkitra co
  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • fresco 的 Proguard 错误

    我正在使用 ProGuard 当我在发布配置中运行项目时 出现以下错误 Warning com facebook imagepipeline bitmaps DalvikBitmapFactory can t find referenced
  • 如何在 StateListDrawable 中设置可绘制对象的 alpha 值?

    我想在按下时更改可绘制对象的 alpha 值 因此 我创建了两个可绘制对象并将它们放入 StateListDrawable 中 并设置按下状态的 alpha 值 但它就是行不通 StateListDrawable content new S
  • 如何检测android中的颠倒方向?

    在我的 Android 应用程序中 我有全景图像 并且我使用 TYPE ORIENTATION 传感器根据手机运动旋转该图像 它对于横向和纵向都工作良好 这是旋转逻辑的代码 Override public void onSensorChan
  • ActionBarCompat 支持库 android:selectableItemBackground 不起作用

    我正在使用新的 ActionBarCompat 支持库 操作栏中的操作按钮在按下时应更改其背景 它适用于 Android 4 3 但不适用于 Gingerbread 在姜饼中 如果我按下按钮 它不会改变背景 我什至改变了选择器 它再次适用于
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • 如何在 Android 中创建刮刮卡?

    我需要为我在学校的期末项目创建一个 刮刮卡 应用程序 但找不到如何实现刮刮事件的方法 如何创建背景图像并在其上放置灰色矩形 所以当我刮刮这些矩形时我会看到他们下面的图片 实现必须在 Android 中 因为我还不知道如何在 Objectiv
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • NullPointerException org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDragEvent

    大约 10 天前 我的应用程序开始记录此异常 在开发控制台上看到 java lang NullPointerException at org chromium android webview AwContents AwViewMethods
  • 如何在代码中设置TextView的文字颜色?

    在 XML 中 我们可以通过以下方式设置文本颜色textColor属性 比如android textColor FF0000 但如何通过编码来改变它呢 我尝试过类似的东西 holder text setTextColor R color R
  • 如何从debug.keystore文件获取MD5?

    我使用一些命令来获取 MD5 私钥debug keystore文件 但实际上我得到的是 SHA1 私钥而不是 MD5 我不知道如何获得MD5 这是我使用的命令 keytool list alias androiddebugkey keyst
  • 如何在不改变的情况下将字符串转换为字节?

    我需要一个解决方案将字符串转换为字节数组而不需要像这样进行更改 Input String s Test Output String s Test byte b Test 当我使用 s getBytes 那么回复是 B 428b76b8 但我
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 在Android的activity中调用onResume

    在活动的过程中通过调用 this OnResume 强制 onResume 事件可以吗 或者我应该实现另一个由 OnResume 和第一个成员调用的过程 实现在您的重写中调用的另一个过程onResume 后者不打算由您调用 它是一种方便的方
  • Android 将菜单项在操作栏中向左对齐

    我的应用程序中有一个操作栏 它显示我定义的菜单项res menu activity main xml 我的菜单项在操作栏上向右对齐 我希望它们左对齐 我为此找到的唯一解决方案使用了自定义操作栏 如下所示 将菜单项放置在 Honeycomb
  • MPAndroidChart:组合图表

    我在用MPAndroidChart 库 https github com PhilJay MPAndroidChart 我想用CombinedChart创建这样的图表 那可能吗 我尝试了一下 但似乎不起作用 因为 这些条目没有按我的预期工作
  • 如何使用asynctask显示倒计时的进度条?

    在我的应用程序中 我希望用户按下按钮 然后等待 5 分钟 我知道这听起来很糟糕 但就这样吧 5 分钟等待期间的剩余时间应显示在进度条中 我使用带有文本视图的 CountDownTimer 来倒计时 但我的老板想要看起来更好的东西 这就是进度

随机推荐

  • Web 服务上下文中的 UDDI 是什么?

    Web 服务上下文中的 UDDI 是什么 UDDI 是通用描述 发现和集成 它直接用于发布和发现公共 Web 服务 更多详情可访问网站http www UDDI org http www UDDI org
  • 运行“pip install -rrequirements.txt --upgrade”时出错

    当我在 Django 项目中运行以下命令时 pip install r requests txt upgrade 我收到以下错误 检测到我们无法卸载的 distutils 安装项目 argparse distutils 提供的元数据不包含
  • C#计算打开文件的MD5?

    如何计算进程打开或使用的文件的 MD5 哈希值 文件可以是 txt 或 exe 我当前的代码返回 exe 错误 因为它正在运行 这是我当前的代码 public static string GetMd5HashFromFile string
  • 访问 iPhone/iPod touch 上的日历条目

    是否可以在 iPhone iPod touch 上访问日历条目 即读取 创建 更改 删 除约会 我搜索了iPhone SDK文档但没有找到任何东西 也许我错过了什么 目前 SDK 不支持此功能 如果您需要此信息 请考虑提交一份错误报告 ht
  • Android 中如何在另一个 Activity 中显示一个 Activity?

    我有一项活动 想在其中显示另一项活动 这是我的布局
  • 更改 DirectionsRenderer 中折线的颜色

    我已经集成了地图 我想显示两个位置之间的路线方向 一切工作正常 方向显示完美 但我想改变的颜色Polyline方向 我已经尝试过这段代码 如文档所述 polyline options var pOptions map map strokeC
  • Selenium Java:我想访问 div 类中的第一个 div 元素

    Selenium Java 我想访问 div 类中的第一个 div 元素 public int checkLinks int x driver findElements By xpath div class recommendation h
  • {{action}} 与使用关系 id 的transitionTo 链接

    给定一个具有如下上下文的视图 id 1 form id 5 我想创建一个 action 使用链接到表格form id 我的视图代码如下所示 我的路由器中的操作如下所示 showForm function router event var f
  • UnicodeDecodeError:“ascii”编解码器无法解码字节 0xc5

    UnicodeDecodeError ascii codec can t decode byte 0xc5 in position 537 ordinal not in range 128 referer 当我尝试用字符 输出整个网站时 我
  • 我可以在 Honeycomb 的操作栏中隐藏应用程序图标吗?

    我目前正在计划对我的应用程序进行蜂窝更新 我想知道如何正确使用操作栏 我的第一个问题是是否可以从操作栏中隐藏应用程序图标和标题 Honeycomb UI 是否有任何设计指南 是的 您可以隐藏应用程序图标和标题 您还可以将应用程序图标替换为适
  • 仅在 WCF Web 服务中的某些方法需要凭据

    我有一个具有不同方法的 UserAccountService 其中一些方法需要对用户进行身份验证 例如 ChangePassword ChangeUserData 而另一些则不需要 RegisterUser 然而 我似乎无法让它工作 因此只
  • 低级鼠标钩子 - 鼠标在断点处冻结

    我想自己绘制和移动我的窗口 使用 chromium 嵌入式框架 为此 当鼠标移动到窗口之外时 我需要一个全局回调 所以我安装了一个低级别的鼠标钩子 hMouseLLHook SetWindowsHookEx WH MOUSE LL HOOK
  • 如何在PIL中减少png图像文件大小

    我已经使用 PIL 将 JPG BMP 文件转换并调整大小为 PNG 格式 我可以轻松调整大小并将其转换为 PNG 但新图像的文件大小太大 im Image open input jpg im resize im resize 400 40
  • 如何将 Mongoose 文档转换为普通对象?

    我有一个来自猫鼬的文档 我想在 JSON 编码并作为响应发送之前进行扩展 如果我尝试向文档添加属性 它将被忽略 该属性未出现在Object getOwnPropertyNames doc 无法正常延长 奇怪的是JSON parse JSON
  • 收到“线程 1:EXC_BAD_ACCESS”错误?

    我正在使用 WKWebView 和 Swift 语言创建一个简单的 Web 查看器 这是我的代码 import Cocoa import WebKit NSApplicationMain class AppDelegate NSObject
  • NSMutableDictionary 以 UIButton* 作为键 - iPhone 开发

    我是 iPhone 开发新手 我有一个问题 可能有一个非常简单的答案 我正在尝试向视图添加按钮 这些按钮与我定义的自定义类相关联 当我将按钮添加到视图中时 我想知道这些按钮对应什么类 这是因为当我按下按钮时 我需要获取有关该类的一些信息 但
  • VKDefault - 三角器未能完全三角化多边形 MapKit

    我遇到了收到警告的问题 VKDefault Triangulator failed to fully triangulate polygon MapKit放大和缩小地图上的特定区域时 我正在从 json 数据创建多边形 该数据可以包含 MK
  • Scikit-learn 的 LabelBinarizer 与 OneHotEncoder

    两者有什么区别 似乎两者都创建了新列 其数量等于特征中唯一类别的数量 然后 他们根据数据点所属的类别将 0 和 1 分配给数据点 下面显示了使用 LabelEncoder OneHotEncoder LabelBinarizer 对数组进行
  • 如何从数据库中获取可为空的 DateTime

    我的 SQL Server 数据库包含可为空的 DateTime 值 如何将它们转换为 C 应用程序中可为 null 的 DateTime 对象 这就是我认为的样子 但事实并非如此 DateTime dt DateTime sqldatar
  • Android:在异步任务期间处理后退按钮

    我有一个显示列表视图的活动 单击项目时 将启动第二个活动 该活动运行一个 AsyncTask 根据单击的项目获取远程 URL 解析结果 然后将这些结果显示到另一个列表视图中 当异步任务运行时 我有一个 正在加载 视图 仅显示图像和文本 问题