Tag: android asynctask

主线程exception上的Android Bump Api网络

首先,我对Android和JAVA世界都很陌生(来自C / C ++ / Objective-C)。 我正在尝试集成Android bump API(3.0,最新版本),但我遇到了麻烦。 我复制了这个例子,它在Android 2.2下工作正常,碰撞服务正确启动,但对于Android 3.0及其上层它不起作用。 在加载我的活动时,我有一个exception(主线程上的网络),我知道这个exception以及如何避免它,但在这种情况下,Bump表示他们在自己的线程中运行他们的API所以我不这样做真的知道我为什么得到它。 他们说你不需要运行一个线程或任务。 以下是我的活动示例 public class BumpActivity extends Activity { private IBumpAPI api; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bump); bindService(new Intent(IBumpAPI.class.getName()), connection, Context.BIND_AUTO_CREATE); IntentFilter filter = new IntentFilter(); filter.addAction(BumpAPIIntents.CHANNEL_CONFIRMED); filter.addAction(BumpAPIIntents.DATA_RECEIVED); filter.addAction(BumpAPIIntents.NOT_MATCHED); filter.addAction(BumpAPIIntents.MATCHED); filter.addAction(BumpAPIIntents.CONNECTED); registerReceiver(receiver, filter); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); […]

AsyncTask(异步进程)

我有关于异步任务的问题 来自android的Async 使用2个活动“A”和“B” 通过输入一个单词从URL搜索并在DTO中存储值,然后从getter和setter中获取值。 我的复杂性是我在我的活动“B”中实现了异步,并且该活动从同一个DTO获取值。 问题是,我的post知道在后台做的事情已经从DTO和DTO取得价值从互联网上取得价值……如果互联网连接速度慢的话。 我将意图从“A”发送到“B”并在“B”上显示结果 问题: 1.如果我删除异步,则应用程序显示黑页并冻结(仅在连接速度较慢的情况下)但显示数据 2.如果我使用aync,那么有时会显示进度对话框很长时间,并且知道数据已经在UI中显示 代码链接https://www.dropbox.com/s/p27rpokz68sryv3/SearchData.java https://www.dropbox.com/s/rm3i52djiay327u/SearchData_DTO.java https://www.dropbox.com/s/2hpufx2a12480on/Search.java 请建议我可能的解决方案 问候

我的AsyncTask中的NullPointerException

大家好,我有一个异步任务,根据用户输入的地址指向地图上的一个点。 我在onPostExecute中有一个NullPointerException,我可以找出原因。 这是异步类 private class GeocoderTask extends AsyncTask<String, Void, List>{ @Override protected List doInBackground(String… locationName) { // Creating an instance of Geocoder class Geocoder geocoder = new Geocoder(getBaseContext()); List addresses = null; try { // Getting only one address that matches the query addresses = geocoder.getFromLocationName(locationName[0], 3); } catch (IOException e) { e.printStackTrace(); } return […]

如何在启动splashscreen的同时在webview中加载url?

这是我的启动画面活动。 public class Splash extends Activity { private static int SPLASH_TIME_OUT=10000; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); Timer r=new Timer(); new Handler().postDelayed(r,SPLASH_TIME_OUT); } class Timer implements Runnable{ @Override public void run() { // TODO Auto-generated method stub Intent i=new Intent(Splash.this,MainActivity.class); startActivity(i); finish(); } } } 这是我的MainActivity。 此活动应在后台执行,而前面有防溅板。 是否可以使用AsyncTask。 怎么做? 如果不是AsyncActivity,我可以使用什么? public class MainActivity extends Activity […]

Android,Web Services,AsyncTask请帮助一个菜鸟/确保我正确的开始

自从orignal post我做了一个连接到JSON API的Android应用程序后,我做了编辑 。 到目前为止一切正常,除非服务器有延迟。 如果需要太长时间,UI当然可以停止响应。 我读过asynctask可以解决我的问题。 不过,我对这些例子非常热心。 这是进行http调用的restclient类…解析json并将自定义对象存储到我的其他类可以访问的公共列表中。 package com.bde.dgcr; import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import android.view.View; import android.widget.ListView; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class […]

在AsyncTask的情况下,在doInBackground()方法之前调用onPostExecute()

考虑以下代码: package com.reallybelievebig.asynctaskextracredit; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class AsyncTaskTestActivity extends AppCompatActivity { private static final String TAG = AsyncTaskTestActivity.class.getSimpleName(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_async_task_test); new TestTask().execute(“Execute”); Log.d(TAG, “In UI Thread!”); } private class TestTask extends AsyncTask { @Override […]

在AsyncTask中维护TCP连接

我正在使用AsyncTask建立TCP连接并通过它发送/接收数据。 我目前的代码现在看起来像这样: public class NetworkTask extends AsyncTask { Socket nsocket; //Network Socket InputStream nis; //Network Input Stream OutputStream nos; //Network Output Stream boolean bSocketStarted = false; byte[] buffer = new byte[4096]; @Override protected void onPreExecute() { Log.i(TAG, “onPreExecute”); } @Override protected Boolean doInBackground(Void… params) { //This runs on a different thread boolean result = false; […]

AsyncTask / Handler滞后UI

所以我有这个从网站获取数据的AsyncTask,在它的post执行后,它调用main函数将setText作为main的textview。 这是代码。 @Override protected Void doInBackground(String… arg0) { result = connect(start);//connect to the webpage, start is a URL // TODO Auto-generated method stub return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); Document doc = Jsoup.parse(this.result); Elements stuff = doc.select(“td”); MainActivity.GetData(doc);//set the textview } 我叫处理程序每​​五秒钟执行一次,这是处理程序代码。 hand = new Handler(); r = new Runnable() { […]

doInBackground不更新变量

我正在开发一个基本的Android应用程序,它使用HttpURLConnection进行POST 。 我想从Web API返回响应消息。 我的MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView mTextView = findViewById(R.id.textView); AsyncExample asyncExample = new AsyncExample(); asyncExample.execute(); mTextView.setText(asyncExample.getResponseMsg()); } } 我的AsyncExample.java class AsyncExample extends AsyncTask { private HttpURLConnection con; private String responseMsg; protected void onPreExecute() { responseMsg = “empty message”; } @Override […]

将progressDialog添加到JSON Parser类并返回MainActivity的方法

我有一个JSONparser类来获取和发送数据到服务器工作正常,但在没有wifi连接测试这个过程需要更长的时间。 是否可以将进程Dialog放入我的类中,因为我将这个类称为每个需要发送或接收数据的活动。 我尝试了一些不同的事情,例如在任务之前和之后应用设置LinearLayout的可见性,如: loading.setVisibility(View.VISIBLE); /// DO TASK loading.setVisibility(View.GONE); 但屏幕只是冻结并加载数据。 我已经尝试在HTTP请求开始时添加processDialog,并在任务完成时再次删除它但我得到一个空引用错误。 我觉得错误可能在于课程本身,因为我是Java的新手,我现在才真正了解基础,所以只是学习。 这是我的JSONParser类 public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = “”; static String root = “**MY SERVER**”; private View loading = null; public JSONParser() { } public JSONObject makeHttpRequest(String url, String method, List params) { […]