首先,我已经知道如何下载,我可以显示进度条,但我无法切换活动,默认下载代码,当下载达到100%时,它将关闭对话并保留在该页面/布局,我希望它下载,然后转移到下一个活动,而不是停留在原地。所以我添加了一个可运行的代码,在完成下载2秒后更改活动,但它只是在2秒后移动到下一个活动,即使下载不是..帮我查一下代码,告诉我该怎么做。感谢
公共类ClockWorkMod扩展了Activity {
// button to show progress dialog Button btnShowProgress; // Progress Dialog private ProgressDialog pDialog; ImageView my_image; // Progress dialog type (0 - for Horizontal progress bar) public static final int progress_bar_type = 0; // File url to download private static String file_url = "http://api.loadedgeek.com/myupgrade/clockworkmod.img"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.clockworkmod); // show progress bar button btnShowProgress = (Button) findViewById(R.id.btnProgressBar); // Image view to show image after downloading /** * Show Progress bar click event * */ btnShowProgress.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // starting new Async Task new DownloadFileFromURL().execute(file_url); } }); } /** * Showing Dialog * */ @Override protected Dialog onCreateDialog(int id) { switch (id) { case progress_bar_type: // we set this to 0 pDialog = new ProgressDialog(this); pDialog.setMessage("Installing ClockWorkMod. Please Wait..."); pDialog.setIndeterminate(false); pDialog.setMax(100); pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pDialog.setCancelable(true); pDialog.show(); return pDialog; default: return null; } } /** * Background Async Task to download file * */ class DownloadFileFromURL extends AsyncTask<String, String, String> { /** * Before starting background thread * Show Progress Bar Dialog * */ @Override protected void onPreExecute() { super.onPreExecute(); showDialog(progress_bar_type); } /** * Downloading file in background thread * */ @Override protected String doInBackground(String... f_url) { int count; try { URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); // this will be useful so that you can show a tipical 0-100% progress bar int lenghtOfFile = conection.getContentLength(); // download the file InputStream input = new BufferedInputStream(url.openStream(), 8192); // Output stream OutputStream output = new FileOutputStream("/sdcard/MyUpgrade/clockworkmod.img"); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... // After this onProgressUpdate will be called publishProgress(""+(int)((total*100)/lenghtOfFile)); // writing data to file output.write(data, 0, count); } // flushing output output.flush(); // closing streams output.close(); input.close(); } catch (Exception e) { Log.e("Error: ", e.getMessage()); } return null; } /** * Updating progress bar * */ protected void onProgressUpdate(String... progress) { // setting progress percentage pDialog.setProgress(Integer.parseInt(progress[0])); } /** * After completing background task * Dismiss the progress dialog * **/ @Override protected void onPostExecute(String file_url) { // dismiss the dialog after the file was downloaded dismissDialog(progress_bar_type); new Handler(). postDelayed(new Runnable() { @Override public void run() { Intent i= new Intent(ClockWorkMod.this, ClockWorkModFlash.class); startActivity(i); } }, 2000); } } { } }
答案 0 :(得分:0)
创建您想要去哪个活动的意图,并在下载完成之后启动它 假设你想在完成后再去com.ex.act那么做
Intent i=new Intent("com.ex.act");
startActivity(i);