Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It is obvious that you should get this type of error as current thread you are running cannot be able to update the GUI.In order to update the gui you have to understand the concept of Handler in android.Please read about <a href="http://developer.android.com/reference/android/os/Handler.html" rel="nofollow">Handler</a> in android.</p> <p>I think that u should change your code as below:-</p> <pre><code>import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class CheckDownload extends Activity { private TextView textytext; private int totalSize; private int downloadedSize = 0; private TimerThread timer = new TimerThread(); /** Called when the activity is first created. */ @Override protected void onCreate(Bundle SavedInstanceState) { // TODO Auto-generated method stub super.onCreate(SavedInstanceState); setContentView(R.layout.downloadscreen); timer.start(); } public void updateProgress(int downloadedSize, int totalSize) { int percentage = downloadedSize / totalSize * 100; String stringy = "Download Progress: " + percentage + "%"; TextView textytext = (TextView) findViewById(R.id.downloadscreentextview); textytext.setText(stringy); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); finish(); } private class TimerThread extends Thread { @Override public void run() { try { // set the download URL, a url that points to a file on the // internet // this is the file to be downloaded URL url = new URL( "http://www.android.com/media/wallpaper/gif/android_logo.gif"); // create the new connection HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); // set up some things on the connection urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); // and connect! urlConnection.connect(); // set the path where we want to save the file // in this case, going to save it on the root directory of // the // sd card. File SDCardRoot = Environment.getExternalStorageDirectory(); // create a new file, specifying the path, and the filename // which we want to save the file as. File file = new File(SDCardRoot, "android_logo.gif"); // this will be used to write the downloaded data into the // file we created FileOutputStream fileOutput = new FileOutputStream(file); // this will be used in reading the data from the internet InputStream inputStream = urlConnection.getInputStream(); // this is the total size of the file totalSize = urlConnection.getContentLength(); // variable to store total downloaded bytes downloadedSize = 0; // create a buffer... byte[] buffer = new byte[1024]; int bufferLength = 0; // used to store a temporary size of // the buffer // now, read through the input buffer and write the contents // to the file while ((bufferLength = inputStream.read(buffer)) &gt; 0) { // add the data in the buffer to the file in the file // output stream (the file on the sd card fileOutput.write(buffer, 0, bufferLength); // add up the size so we know how much is downloaded downloadedSize += bufferLength; // this is where you would do something to report the // prgress, like this maybe handler.sendEmptyMessage(0); } // close the output stream when done fileOutput.close(); // catch some possible errors... } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { handler.sendEmptyMessage(1); } } } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: updateProgress(downloadedSize, totalSize); break; case 1: Intent chapterMenuIntentObject = new Intent( "com.blah.blah.CHAPTERMENU"); startActivity(chapterMenuIntentObject); } } }; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload