我可以在 sencha 应用程序(Android)中使用 android AsyncTask

Posted

技术标签:

【中文标题】我可以在 sencha 应用程序(Android)中使用 android AsyncTask【英文标题】:can i use android AsyncTask in sencha application (Android) 【发布时间】:2013-01-04 08:39:48 【问题描述】:

在我之前的question 中,我问过“如何下载 Facebook 头像”,我得到的答案是“使用 AsyncTask 下载并保存到应用程序的磁盘空间”。

我正在使用 sencha touch(它全部关于 java 脚本和 html)来创建带有 phonegap 的视图。我需要从网上下载图片(来自这个网址https://graph.facebook.com/username/picture)。

所以,当我学习 AsyncTask 时,我有一个疑问“我可以在 sencha android 应用程序中使用 AsyncTask 吗?”,因为我没有创建视图(我的意思是按钮、面板等..) 使用活动 xml。

还有其他解决方案可以在sencha touch 应用程序(android)中从网络下载图片吗?

解决方案更新

我使用下面的 facebook api 来获取个人资料图片 url 和 Phonegap 文件 Api 用于下载图片,如 @Lukas K 所说。

 FB.api('/'+fbusername+'/picture?redirect=false', function(response) 
      localStorage.fbpicurl = response.data.url;
     );

【问题讨论】:

【参考方案1】:

您可以将其转换为base64并将其存储在localStorage中。 但是 LocalStorage 的空间限制为 5MB。达到限制后,设备会提示用户提供更多空间。

除了 Sencha Touch,你还使用 phonegap 吗? Phonegap 提供对手机文件系统的访问,您可以在其中存储图片。

Phonegap 文件 API:http://docs.phonegap.com/en/2.3.0/cordova_file_file.md.html#File

【讨论】:

【参考方案2】:

你可以像这样使用 sencha 的延迟任务:

        var task = Ext.create(
                'Ext.util.DelayedTask',
                function() 
                    Ext.getCmp("imageId").setSrc( 'https://graph.facebook.com/username/picture' );
                
            );
        task.delay(100);

这将在 100 毫秒后开始下载图像。 我希望这是你想要做的,如果不是,那么在函数中做任何延迟任务。

【讨论】:

感谢@ThinkFloyd,但我想下载(并将其保存在数据库中)个人资料图片,而不仅仅是显示。

以上是关于我可以在 sencha 应用程序(Android)中使用 android AsyncTask的主要内容,如果未能解决你的问题,请参考以下文章

Sencha 应用在 IOS 和 Android 上太慢了

Android/sencha/phonegap ajax 调用本地 php 文件返回整个代码?

如何在 Android 模拟器上运行 Sencha 应用程序

Sencha Touch 2 轮播无法在 Android 设备上启动

Sencha Touch 2:数据视图在 android 模拟器中不可见

Sencha Touch App 在多点触控/Android 时冻结