我试图使用 ZipInputStream
(code is here)解压缩文件
public class Async_unzipping extends AsyncTask<String, String, String> {
Activity mActivity;
private ProgressDialog mProgressDialog;
public Async_unzipping(Activity activity) {
this.mActivity = activity;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(mActivity);
mProgressDialog.setMessage("Extracting file..");
mProgressDialog.setCancelable(false);
mProgressDialog.show();
}
@Override
protected String doInBackground(String... params) {
try {
FileInputStream fin = new FileInputStream(Constant.SDCARD + Constant.FILENAME);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
FileOutputStream fout = new FileOutputStream(Constant.SDCARD + ze.getName());
for (int c = zin.read(); c != -1; c = zin.read()) {
fout.write(c);
}
zin.closeEntry();
fout.close();
}
zin.close();
} catch (Exception e) {
}
return null;
}
@Override
protected void onPostExecute(String unused) {
mProgressDialog.dismiss();
}
}
问题是这个类永远不会被调用,它永远不会工作或显示任何对话框 . 我正在使用它
public void unzip(View view) {
Toast.makeText(getBaseContext(), "method was called", Toast.LENGTH_LONG).show();
Async_unzipping async_unzipping = new Async_unzipping(Main.this);
async_unzipping.execute("");
}
当我按下解压缩按钮时没有日志,所以我无法分辨最新情况 . 我在清单中读过写权限