草庐IT

aSyncTask

全部标签

java - GCM 注册阻塞 AsyncTask 直到发生超时

我正在尝试通过GCM获取我的设备注册ID。我这样做的代码包含在从我的主线程调用的AsyncTask中。主要代码try{StringdeviceId=newGcm().execute(this.activity).get(5,TimeUnit.SECONDS);Log.i("Login","Userdeviceidreturnedas"+deviceId);returndeviceId;}catch(Exceptione){Log.e("Login","Exception",e);}GCM类publicclassGcmextendsAsyncTask{@Overrideprotected

android - 在 AsyncTask 的 doInBackGround() 中启动一个新的 Activity

在我的项目中,我需要每隔1小时触发一次关于用户操作的查询。这应该在AyncTask中完成(其实我是在修改一个已有的代码)。我可以在AsyncTask的doInBackGround()中开始一个新Activity吗?提前致谢! 最佳答案 我认为您不能直接从doInBackground()方法启动Activity,因为它在与UI线程不同的线程上运行。我认为必须在UI线程上启动一个Activity。但是您可以在UI线程上执行的onProgressUpdate()上启动它。 关于android-

android - AsyncTask 完成执行后 ExpandableListView 未更新

我有一个作为Activity的一部分创建的ExpandableListView:@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.news);//createtheexandablelistviewwidgetnewsListAdapter=newNewsListAdapter(this.getApplicationContext());newsListView=(ExpandableListView)findV

android - AsyncTask 可以在服务内部运行并写入数据库吗?

publicclassIdServiceextendsService{privateUploadFilesTasktask;DBAdapterdbs;@OverridepublicIBinderonBind(Intenti){returnnull;}@OverridepublicvoidonCreate(){super.onCreate();}@OverridepublicvoidonStart(Intentintent,intstartId){super.onStart(intent,startId);if(Networking.isNetworkAvailable(this)){i

android - AsyncTask onCancelled() 和 AsyncTask.doInBackground() 的执行时机

根据AsyncTask.cancelmethod的Android引用,onCancelled()和doInBackground()之间的时间是明确定义的:CallingthismethodwillresultinonCancelled(Object)beinginvokedontheUIthreadafterdoInBackground(Object[])returns.CallingthismethodguaranteesthatonPostExecute(Object)isneverinvoked但是,查看我的logcat,我可以看到onCancelled()方法在doInBack

java - 如何在 android 中创建可重用的 AsyncTasks?

我在android中有一个应用程序,我正在其中访问几个RESTweb服务。我正在使用AsyncTasks来访问这些并在之后做一些UI更改。我想在不同的Activity中使用其中一些电话。然而,根据我读过的所有教程,AsyncTasks被用作Activity中的内部类(这是有道理的,因为它们正在改变那些Activity中的View)。但是如何解决那些AsyncTasks的可重用性呢?甚至,假设我想在位置更改时执行一些AsyncTasks调用。我有一个LocationListener(它是一个外部类),我想在onLocationChange()方法内部进行API调用。但是我无法访问我想要的

android - 异步任务内存泄漏

像这样创建asyncTaskAsyncTasknewTask=newAsyncTask{....}newTask.execute()造成内存泄漏? 最佳答案 好的,然后@sherays特别是在您的情况下,如果您在前一个请求尚未完成时对服务器执行另一个请求(在类似请求的情况下),这可能会导致内存泄漏。实际上,AsyncTask回收不应该有任何问题,除非您从param持有对它的任何引用或在doInBackground()中产生内存泄漏。因此,您可能会想,如果您正在创建许多长时间运行的AsyncTask,那么它会导致一些内存问题。实际上它

java - DRY:AsyncTasks 的案例

我正在开发一个Android应用程序,它有很多不同的网络服务请求。每个请求都以这种方式在AsyncTask的子类中完成:(newAsyncTask(){@OverrideprotectedObject1doInBackground(String...params){//networkrequestandparsingtoObject1Object1obj=newObject1();obj1=Parser.parseObject1(httpClient.execute(...));returnobj1;}@OverrideprotectedObject1onPostExecute(Obj

java - 如何使用 AsyncTask 类来更新将文件复制到另一个目录的进度?

我应该如何使用AsyncTask类和进度条来执行将文件复制到手机SD卡本地上下文中的另一个目录的过程?我在[此处][1]看到了一个类似的示例,但我不知道如何合并差异/修改代码的上下文以适合我的上下文以使其工作? 最佳答案 应该是这样的//Paramsareinputandoutputfiles,progressinLongsizeof//datatransferred,ResultisBooleansuccess.publicclassMyTaskextendsAsyncTask{ProgressDialogprogress;@Ov

android - 基于位置的 Android 应用架构的最佳实践是什么?

我想知道基于位置的Android应用架构/工作流程的最佳实践是什么?我当前的代码使用多个Activity和一个支持服务,以及多个AsyncTask。我一启动我的应用程序就启动我的服务,我在我的服务中进行所有HTTP调用和解析。而且我还写了一个AsyncTask的子类来获取用户的位置。每次需要更新用户位置时,我都会运行AsyncTask。AyncTask调用LocationManager.requestLocationUpdates()并要求尽快获取位置。我的策略是:1.首先,我获取GPS和网络的LastKnownLocation,并使用http://developer.android.