Articles of android asynctask

Android:系统调用期间SSLException I / O错误,连接超时

我的android代码中有一个函数,它使用KSOAP将数据发送到Web服务。 我能够将数据发送到服务,但有时我得到一个例外:“系统调用期间SSLException I / O错误,连接超时”。 在进行了几次测试后,我的观察是: 如果wifi /移动数据已经打开并且我将数据发送到Web服务,我不会得到例外。 当我尝试发送数据时,我只打开wifi /移动数据并且一旦连接就得到它。 我对如何克服这个exception毫无头绪。 如果你能建议/指导我如何克服这个例外将是一个很大的帮助。 以下是用于将数据发送到在ASYNC任务中调用的Web服务的方法。 public String incidentDataToServer(JSONObject incidentJSON) { // package the request SoapObject Request = new SoapObject(INCIDENT_NAMESPACE, INCIDENT_METHOD_NAME); String incidentData = incidentJSON.toString(); PropertyInfo pi = new PropertyInfo(); pi.setName(“IncidentJSonString”); pi.setValue(incidentData); pi.setType(String.class); Request.addProperty(pi); // set the soap serialization envelope, set it to .net and package // the […]

Android AsyncTask – 执行顺序

我正面临着关于AsyncTasks执行顺序的问题。 我的问题是: 假设我有2个AsyncTask实现: MyAsyncTask1和MyAsyncTask2 以下列方式调用: new MyAsyncTask1 ().execute (); new MyAsyncTask2 ().execute (); 是否保证MyAsyncTask1在MyAsyncTask2之前执行? 有一点可以肯定,它们不是并行执行的,因为使用了默认执行程序,即SERIAL_EXECUTOR 。 问题在于执行的顺序:哪个将首先执行? 如果未确定执行顺序,我如何强制执行A​​syncTasks的执行顺序? 我需要的是在MyAsyncTask2之前执行MyAsyncTask1 ,但事实并非如此,尽管我在MyAsyncTask2之前调用了MyAsyncTask1的执行。 我实际拥有的是自定义活动: public abstract class CustomActivity extends Activity { @Override protected void onCreate ( Bundle savedInstanceState ) { super.onCreate ( savedInstanceState ); new MyAsyncTask2 ().execute (); } } 以及从自定义活动inheritance的另一个活动: public class MainActivity extends CustomActivity { @Override […]

Android我可以使用多少个线程?

我有一个Android应用程序,它有单独的东西,但基本上都是线程(绝对是Android调试器的线程) 有多个animation侦听器可以相互循环和调用 倒计时器在启动后总是倒计时到零 现在我需要考虑添加更多的倒计时器。 我可以进行多少这种循环过程? 在这个特定的实现中,我不关心性能,效率等,直到它变得明显。 洞察力赞赏

Android应用程序架构 – 在哪里放置REST API调用代码?

我想更好地了解如何构建Android应用程序,其中活动会触发API调用(例如)。 我目前通过将API调用放入AsyncTask子类来实现它,向它传递对活动的引用,以便它可以更新onPostExecute中的UI。 但我的直觉是,这会产生过度耦合的代码。 我想知道是否应该将这样的API调用放入服务中 ,并使用BroadcastReceiver来更新活动。 你怎么说,AsyncTask或BroadcastReceiver?

为什么Android的AsyncTask没有实现Future?

在Java中,我已经习惯了与Futures 。 现在我正在研究Android,而AsyncTask实现了几乎所有相同的方法并涵盖了类似的生命周期。 但是,如果我想要保持一致并在我的代码中使用Future,我必须将AsyncTask包装在一个愚蠢的包装器中,因为它实际上并没有实现Future。 他们需要添加的只是一个isDone()方法,看起来很简单,然后添加implements Future 。 (稍后补充:请参阅下面的答案,了解它会有多么微不足道)。 任何Android专家都知道一些很好的理由/模糊的错误,它可能导致为什么没有这样做?

onPostExecute()的“在UI线程上运行”真的意味着什么?

考虑在Activity中启动的AsyncTask。 如果活动暂停或销毁会发生什么? onPostExecute()会运行吗? 如果是,将使用什么UI线程? 就是想。 提前谢谢了。

在Android中使用Asynctask的加载器有什么优势?

加载器优于异步任务有什么优势吗? 此外,如何使装载程序与Android froyo手机兼容。 编辑: 这里的主要问题是我没有使用本机DB(SqlLite)。 在开发服务器上使用DB。 显然,我不能再使用CursorLoader了。 AsyncTaskLoader完全没有示例。 如果有的话,请做链接。 将所需数据加载到本地数据库然后使用CursorLoader查询它是否更好?

Android上下文在AsyncTask中泄漏

如果我正确地解释了这篇文章 ,将活动上下文传递给AsyncTasks是一个潜在的泄漏,因为在任务仍在运行时活动可能会被销毁。 你如何在AsyncTasks中解决这个问题,这些问题不是内部的,需要访问资源或更新UI? 另外,如果需要引用进度对话框来解除它们,如何避免泄露上下文?

是否可以分离WebView的UI和HTTP线程?

由于各种原因,我需要runOnUiThread()实际的WebView实例化和初始化。 这意味着它的底层HTTP连接也是在UI线程上进行的? 如果是这样,是否可以将WebView的UI thead与HTTP连接线程分开? 如果有可能,实现这一目标的正确方法是什么?

Android:AsyncTask的替代品?

对于我的应用程序,我为所有网络调用外部API创建了一个框架。 我将所有内容放在“服务”中,如: UserService , MessageService等。所以现在当我想调用网络方法时,我无法在我的Activity的UI-Thread中执行此操作,因此我创建了一个AsyncTask ,一切都很好=) 但是现在我想要让方法执行到AsyncTask所以我不需要为我的网络框架的每个方法编写AsyncTask 。 所以不要有这样的东西: public class NetworkTask extends AsyncTask { @Override protected Void doInBackground(UserService… params) { UserService userService = params[0]; userService.getUser(); return null; } } 我想要更“抽象”的东西,所以AsyncTask不需要知道“getUser”方法? 但我无法find如何做到这一点……也许AsyncTask对此无益?