Articles of android asynctask

在Android模拟器上模拟慢速网络

我正在构建一个使用AsyncTask的应用程序,以便在执行网络操作时显示进度条(Google翻译)。 然而,问题是我无法判断它是否正常工作,因为网络速度太快,一旦启动就完成了运行。 那么是否有一种模拟慢速网络的方法,以便我可以判断进度条在等待操作完成时是否实际运行(可见)? 在创建Android模拟器时,我遇到了网络选项。 但是,有这么多的缩写,我仍然无法理解什么表明网络连接速度慢,我仍然不确定这是否应该如何设置慢速网络连接。 提前致谢!

使用AsynTask进行Squre Image旋转的自定义进度对话框

我创建了一个自定义加载进度对话框。 而且运作良好。 我正在旋转12平方图像这里是其中之一 但是,当我想与AsynTask一起使用时,animation无效。 我的示例代码如下。 我开始加载的活动…animation和停止。 MainActivity.java public class MainActivity extends Activity { AnimationDrawable loadingViewAnim; TextView loadigText; ImageView loadigIcon; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loadigText = (TextView) findViewById(R.id.textView1); loadigText.setText(“Loading…”); loadigText.setVisibility(View.GONE); loadigIcon = (ImageView) findViewById(R.id.imageView1); loadigIcon.setVisibility(View.GONE); loadigIcon.setBackgroundResource(R.anim.progress_animation_white); loadingViewAnim = (AnimationDrawable) loadigIcon.getBackground(); } //When User Touch on Screen The Loading… Animation Starts With Image […]

如何将两种不同的数据types传递给AsyncTask,Android

我有一个方法,它执行SQLite数据库更新并将其放在AsyncTask中,以使其更快,更可靠。 但是,更新数据库需要两个数据。 一个是Integer,另一个是此处显示的PrimaryKeySmallTank类的对象。 在AsyncTask的doInBackground方法的参数中使用params数组,我可以传入一个Integer,但是如果我有两种不同types的数据呢? 如果整数存储在int … params [0]中,我不能在params [1]中存储不同的types对象,那么可以做些什么呢? 对象我想传递给AsyncTask public class PrimaryKeySmallTank { int contractNumber; int customerCode; int septicCode; String workDate; int workNumber; } 我正在使用的AsyncTask public class UpdateInfoAsyncTask extends AsyncTask{ @Override protected void onPreExecute() { // TODO Auto-generated method stub } @Override protected Void doInBackground(Integer… params) { Integer mIntegerIn = params[0]; // this is […]

AsyncTask varargs参数的用途

Google在AsyncTask使用varargs的原因是什么? 例如,方法execute() , doInBackground()和publishProgress()都使用[Type]…表示法。 我认为这使得“更难”使用,所以他们必须有一些我忽略的好理由? 所以,要么我们没有参数,要么有一个或多个参数。 让我们分解一下: 没有参数 (简单): Params参数是Void ,就是这样。 (方法不能使用它……所以这很安全。) 一个参数 :至少在这里,我觉得需要在doInBackground()方法的开头进行检查。 例如,这是一个接收Integer并生成Doubletypes结果的任务: public Double doInBackground(Integer… myParameters) { // we are only expecting one parameter if (myParameters.length != 1) throw new IllegalArgumentException(“!= 1”); return 100d * myParameters[0]; } 多个参数 。 现在这里必须是Google做出正确选择的地方吗? 但正如我所看到的那样,您要么对相同types的参数列表感兴趣,要么需要不同types的参数。 谷歌只解决了其中一种情况(不同types你需要某种通用界面。在很多情况下,我最终得到了Object…而且这种方式并不真正安全……) 那么,如果我们完全删除varargs会有什么问题呢? 这是方法的一个子集: class AsyncTask { abstract Result doInBackground(Param param); void […]

如何在使用ViewPager时处理ActionBarActivity片段中的AsyncTask?

我正在使用ActionBarActivity创建5个选项卡。 我使用ViewPager使用SectionsPagerAdapter在5个选项卡之间滑动,扩展了FragmentPagerAdapter。 每个选项卡都有一个带有asynctask的片段,在oncreateview方法中调用。 当我在一个片段中时,正在调用其他片段中的asynctask。 我尝试在oncreateview方法中使用toast消息是每个片段而不是asynctask。 但错误的吐司消息正在以错误的片段被触发。 Oncreate方法代码: mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager_exp); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); actionBar.setTitle(getHomePageTitle(position)); } }); for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { // Create a tab with text corresponding to the page title defined by // the adapter. […]

你能在一个Activity中有两个AsyncTasks吗?

我已经开发了一个Activity,它将解析JSON数据并在ListView中显示结果。 我正在使用AsyncTask来实现此目的。 我现在想要的是,当我点击ListView中的某个项目时,该文件应该开始下载。 我可以在同一个活动中编写另一个AsyncTask,以便这个AsyncTask会为我做下载工作吗? 在同一个活动中有多个AsyncTasks有什么问题吗?

Android语音识别和录音同时进行

我的应用程序使用AsyncTask中的MediaRecorder类记录音频,并使用Google API转换语音到文本 – Recognizer Intent – 使用此问题的代码: 如何在没有烦人的对话框的情况下使用语音识别 我也试过在Thread中录制音频,但这是更糟糕的解决方案。 它会导致更多问题。 我的问题是我的应用程序在模拟器上正常工作。 但由于缺乏语音识别服务,模拟器不支持语音重新识别。 在我的设备上,当我开始录制音频和语音识别时,我的应用程序崩溃了 – “已意外停止”。 但是当我关闭wifi时,应用程序就像在模拟器上一样正常工作。 在AndroidManifest中录制音频需要: 和语音识别要求: 我想这是单音频输入的问题? 我该如何解决这个问题? Google Speech Recognizer需要在主UI线程中工作,因此我无法在Async Task中执行此操作。 所以我在Async Task中录音。 我不知道为什么这会导致问题。 我已将设备连接到Eclipse,并且已使用USB调试。 这是我在LogCat中的执行: 08-23 14:50:03.528: ERROR/ActivityThread(12403): Activity go.android.Activity has leaked ServiceConnection android.speech.SpeechRecognizer$Connection@48181340 that was originally bound here 08-23 14:50:03.528: ERROR/ActivityThread(12403): android.app.ServiceConnectionLeaked: Activity go.android.Activity has leaked ServiceConnection android.speech.SpeechRecognizer$Connection@48181340 that was […]

当应用程序在执行AsyncTask期间进入后台时应该怎么做?

我有一个使用AsyncTasks来调用REST服务器的应用程序。 想象一下,在加载期间(这是AsyncTask进入REST服务器并将数据传送到下一个屏幕),用户按下Home。 建议: 取消当前的AsyncTask,并在恢复活动时重新启动 要么 继续AsyncTasks但通过检查应用程序是否在后台来避免startActivity(以避免在将应用程序发送到后台后新活动的前景)。 并且onResume发送到下一个活动 您应该预见的最坏情况: 该应用程序进入后台,由于内存不足而被杀死 由于超时或其他REST错误,asynctask失败 两者之后,用户返回应用程序…

Android中的背景图片下载需要帮助吗?

我有一个图像视图,我写过刷卡,在刷卡的时候,图像从互联网上下载,所以我想我必须在刷卡之前在后台下载图像,因为我需要使用asynctask或Service或IntentService,所有这些都有助于下载和存储数据/数据/ mypackages,但仍然在我的情况下刷卡任何想法,也告诉我哪一个是最好的,是我正在以正确的方式调用 asynctask 2.服务 3.意图服务如下图所示, 我很困惑哪一个是正确的方法,因为我的问题仍未解决 这是asynctask代码示例代码段 public class Demo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new FirstTask().execute(); // calling Asynctask here } } 异步任务代码 private class FirstTask extends AsyncTask { private final ProgressDialog dialog = new ProgressDialog(Catalogue.this); int temp = 0; // can use UI thread here protected void […]

由于方向已更改或应用程序正在关闭,活动是否被销毁?

我有一个启动AsyncTask的Activity 。 允许活动以纵向或横向显示。 更改方向时,将销毁并重新创建活动。 无论方向改变多少次,任务都会继续工作。 它还将结果成功返回给活动(根据CommonsWare的答案http://goo.gl/WF1yW )。 我想要实现的是:当活动因应用程序关闭而被销毁时 – 应该取消任务。 但是,当活动因方向更改而被销毁时 – 不应取消任务。 基本上问题是如何区分这两种情况:应用是关闭/方向改变。 在这两种情况下都会调用onDestroy()方法,并且没有简单的方法可以检查像isChangingOrientation()… PS如果有必要,我也可以考虑采用完全不同的方法。