Tag: android asynctask

如果仅执行AsyncTask,则需要BroadcastReceiver唤醒锁吗?

我有一个类,它从BroadcastReceiver扩展并从AlarmManager 。 在onReceive方法中,我执行AsyncTask ,它从Internet获取一些数据并将数据存储在应用程序的本地数据库中。 我是否需要获得唤醒锁: @Override public void onReceive(Context context, Intent intent) { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, “”); mWakeLock.acquire(); // execute AsyncTask } private void asyncTaskDone() { mWakeLock.release(); } 为了阻止CPUhibernate,或者在没有唤醒锁定的情况下执行AsyncTask是否安全?

即使使用cancel方法也无法取消AsyncTask中的doInBackground进程

我已经声明了FileUploadTask的实例,它在onCreate()方法中扩展了AsyncTask FileUploadTask uploadTask= null; 并通过以下代码执行后台方法 public class UploadFiles implements OnClickListener{ …. if(SOTCNetStat.chkConnectionStatus(UploadResult.this)){ uploadTask=new FileUploadTask(); uploadTask.execute(“”); } else { Toast.makeText(UploadResult.this, getResources().getString(R.string.Text_CheckNetworkConnections) , Toast.LENGTH_LONG).show(); } …. } 有取消按钮取消后台进程 cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.d(TAG,”cancel button clicked…..”); //FileUploadTask uploadTask= new FileUploadTask(); if(uploadTask!=null) { Log.d(TAG,”click event null checking….”); uploadTask.cancel(true); } […]

60秒后停止异步任务

我想在60秒后停止异步任务 我知道有一个方法get(time,timeunit)我应该在doInBackground中使用,但我不知道如何检查是否已达到超时请提供该样本一行代码。 谢谢

Asynctask致命exception

我还是Android编程的新手。 我正在关注一本名为Learning Android的书中的教程。 当我点击更新按钮时,我最终崩溃了。 知道为什么吗? Stacktrace在下面。 我得到一个致命的例外:主要 package com.marakana.yamba; import winterwell.jtwitter.Twitter; import winterwell.jtwitter.TwitterException; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class StatusActivity extends Activity implements OnClickListener{ private static final String TAG =”StatusActivity”; Twitter twitter; EditText editText; Button updateButton ; @Override protected […]

当Service在后台工作时,AsyncTask中的doInBackground从不调用

private class Test extends AsyncTask { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); Log.d(“test”, “called1”); } @Override protected Void doInBackground(Void… params) { Log.d(“test”, “called2”); return null; } @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub super.onPostExecute(result); Log.d(“test”, “called3”); } } 并输出: 测试:called1 为什么其他方法永远不会在Service在后台工作时调用? 如果服务停止,那么所有方法调用和输出: 测试:called1 测试:called2 测试:called3

无法从AsyncTask启动WebView

我想从我的AsyncTask启动一个WebView但它似乎没有运行。 这是我的onPostExecute方法的样子: public class Viewer extends AsyncTask { private Activity objContext = null; public Viewer(Activity objContext) { this.objContext = objContext; } protected void onPostExecute(URI uriWebpage) { WebView wbvBrowser = new WebView(this.objContext); wbvBrowser.getSettings().setBuiltInZoomControls(true); wbvBrowser.getSettings().setJavaScriptEnabled(true); wbvBrowser.loadUrl(uriWebpage.toString()); } } 我的任务由我的应用程序中的两个活动使用,因此我的全局objContext变量的类型为Activity 。 如果我将objContext变量的类型更改为调用类的名称,它可以正常工作但我无法从其他调用类实例化我的任务。 我像这样实例化我的任务。 Viewer mytask = new Viewer(this); 我怎么解决这个问题?

在非UI线程上实例化视图

我知道UI元素(视图层次结构)可能只能从UI线程中操作。 对于后台操作,可以使用AsyncTask,它提供事件处理程序以访问UI线程。 简而言之,是否允许在非UI线程中实例化View(与getApplicationContext() )? 此自定义View后代 – 一旦实例化 – 将从UI线程添加到视图层次结构中。 所以只有构造函数调用是在Asynctask.doInBackground() ; 它附加( addView(…) )到Activity的根布局层次结构仍然在UI线程中完成。 详情如下: public MyView extends View { public MyView(Context context) { … } … } 我制作了一个自定义视图,重写了onDraw(…)等。 当用户单击我的主Activity中的某个MenuItem时,会创建另一个Activity(MyOtherActivity)并显示哪个屏幕正好是MyView 由于MyOtherActivity的屏幕必须立即显示,我在AsyncTask中预先实例化MyView,而用户在主Activity中的其他位置(即他还没有点击那个MenuItem)。 MyView引用存储在静态数据成员中。 调用MyOtherActivity.onCreate() ,其构造函数代码从静态获取MyView,并通过addView(…)将其添加到其布局根层次结构中。 (我知道静态变量可能会引入内存泄漏,所以一旦不需要,我就把它设置为null 。) MyView是否在另一个线程中实例化(并在其构造函数中获取getApplicationContext()的返回值getApplicationContext()是不是问题(可能会引入意外问题)?

如何管理需要由AsyncTask调用的不同任务

我有一个外部库,可以通过互联网与服务器通信。 每当我需要从互联网上获取一些信息时,android会强迫我使用asynctask。 到目前为止没问题。 但是,我正在接收越来越多的任务来从互联网上检索(以不同的方式)数据,而且我不喜欢每次调用不同类的增加。 长话短说:我有不同的互联网调用,而不是为每个调用创建一个asynctask类,我会优先选择一个类来管理所有不同的调用。 这有点可能吗? 更重要的是,这样做的正确方法是什么?

AsyncTask是否同时工作?

AsyncTask是同时工作还是以先到先得的方式工作? 。 例如,我有3个具有相同接口类和相同侦听器function的AsyncTasks。 同时执行3个AsyncTasks。 AsyncTasks的哪些响应会在监听器function中显示? 释疑: 1. AsyncTasks是以并行还是先到先得的方式运行的? 2.如果AsyncTasks以并行方式运行,如何为所有AsyncTasks处理相同的侦听器函数? Nb :怀疑2是因为在不使用AsyncTask的情况下同时执行多个请求时收到第一个响应。 ( Web Api响应 )。 提前致谢。

使用Service,AsyncTask和Thread制作智能Android Media Player应用程序

首先:抱歉,如果我拼错了。 我来自巴拉圭,我正在使用谷歌翻译。 这可能看起来有点傻,而且我是一个完美主义者,就像任何优秀的开发人员和设计师一样,不要在我的项目中存在错误。 我正在学习,希望能和你学到很多东西 我见过媒体播放器应用程序允许用户快速反复按下播放/停止按钮而不会杀死应用程序,并且这仍然正常运行,所以我读到了有关Services , AsyncTask和Thread 。 不仅要在后台播放声音,还要不要因UI错误而杀死我的应用程序。 我还有很多问题。 我想知道我是否在使用以下资源( 在网上找到 )的良好路径,但我已经尝试过,当我按下播放/停止按钮几次或有时根本不播放歌曲时,应用程序会死机。 package com.myaudioservice.app; import android.app.Service; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.AsyncTask; import android.os.Binder; import android.os.IBinder; /** * Service to serv MediaPlayer in background * * @author Eugeny Pozharsky */ public class PlayerService extends Service { private final IBinder mBinder = new […]