I\'m establishing a server connection, my problem is that I need to put an AsyncTask
on my code, because its not working in sdk version 10
up. I do
In oncreate() u can use like this::
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
new MyAsynTask().execute(null, null, null);
}
Then in AsynTask do as well::
class MyAsynTask extends AsyncTask<Long, Integer, Integer> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected <Type> doInBackground(Long... params) {
URL ur_url = newURL(http://....)
// do the works on url.....
return <tuped>result;
}
@Override
protected void onPostExecute(Integer result) {
// set the results in Ui
}
}
Refer below code
new FetchRSSFeeds().execute();
private class FetchRSSFeeds extends AsyncTask<String, Void, Boolean> {
private ProgressDialog dialog = new ProgressDialog(HomeActivity.this);
/** progress dialog to show user that the backup is processing. */
/** application context. */
protected void onPreExecute() {
this.dialog.setMessage(getResources().getString(
R.string.Loading_String));
this.dialog.show();
}
protected Boolean doInBackground(final String... args) {
try {
/**
* Write your URL connection code and fetch data here
*/
return true;
} catch (Exception e) {
Log.e("tag", "error", e);
return false;
}
}
@Override
protected void onPostExecute(final Boolean success) {
if (dialog.isShowing()) {
dialog.dismiss();
}
/* Show the String on the GUI. */
aTextView.setText(aString);
this.setContentView(aTextView);
}
}
private class ConnectionTask extends AsyncTask<String, Void, String>{
@Override
protected byte[] doInBackground(String... urls) {
try {
aURL = new URL(
urls[0]);
/* Open a connection to that URL. */
final HttpURLConnection aHttpURLConnection = (HttpURLConnection) aURL.openConnection();
/* Define InputStreams to read from the URLConnection. */
InputStream aInputStream = aHttpURLConnection.getInputStream();
BufferedInputStream aBufferedInputStream = new BufferedInputStream(
aInputStream);
/* Read bytes to the Buffer until there is nothing more to read(-1) */
ByteArrayBuffer aByteArrayBuffer = new ByteArrayBuffer(50);
int current = 0;
while ((current = aBufferedInputStream.read()) != -1) {
aByteArrayBuffer.append((byte) current);
}
/* Convert the Bytes read to a String. */
aString = new String(aByteArrayBuffer.toByteArray()); } catch (IOException e) {
Log.d(TAG, e.toString());
}
return aString;
}
@Override
protected void onPostExecute(String result) {
// result is what you got from your connection
aTextView.setText(result);
}
}
How to call it:
ConnectionTask task = new ConnectionTask();
String[] params = new String[2];
params[0] = url;
params[1] = somethingelseifneeded;
task.execute(params);