从Adobe Reader返回应用程序时重新启动Android活动

时间:2014-10-30 09:03:31

标签: java android eclipse pdf

我的应用从网络服务器下载PDF文件,然后使用Adobe Reader打开它。但是,当我单击Adobe Reader上的后退按钮时,我的应用程序将重新启动。关闭Adobe Reader时,我不希望我的应用程序重新启动。注意:我的应用程序有一个文件浏览器对话框,我选择一个PDF并显示它。

如何从Adobe Reader返回时阻止重新启动活动?

我的代码......

private class DownloadFile extends AsyncTask<String, Void, Void>{

        @Override
        protected Void doInBackground(String... strings) {
            String fileUrl = strings[0];   // -> http://maven.apache.org/maven-1.x/dokuman.pdf
            String fileName = strings[1];  // -> dokuman.pdf
            String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File folder = new File(extStorageDirectory, "dokuman");
            folder.mkdir();

            File pdfFile = new File(folder, fileName);

            try{
                pdfFile.createNewFile();
            }catch (IOException e){
                e.printStackTrace();
            }
            Downloader.downloadFile(fileUrl, pdfFile);
            return null;
        }

    }

...

public class Downloader {
    private static final int  MEGABYTE = 1024 * 1024;

    public static void downloadFile(String fileUrl, File directory){
        try {

            URL url = new URL(fileUrl);
            HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
            //urlConnection.setRequestMethod("GET");
            //urlConnection.setDoOutput(true);
            urlConnection.connect();

            InputStream inputStream = urlConnection.getInputStream();
            FileOutputStream fileOutputStream = new FileOutputStream(directory);
            int totalSize = urlConnection.getContentLength();

            byte[] buffer = new byte[MEGABYTE];
            int bufferLength = 0;
            while((bufferLength = inputStream.read(buffer))>0 ){
                fileOutputStream.write(buffer, 0, bufferLength);
            }
            fileOutputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

...

new DownloadFile().execute(host+"dene.pdf", "dokuman.pdf");
                        File pdfFile = new File(Environment.getExternalStorageDirectory() + "/dokuman/" + "dokuman.pdf");  // -> filename = dokuman.pdf
                        Uri path = Uri.fromFile(pdfFile);
                        Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
                        pdfIntent.setDataAndType(path, "application/pdf");
                        pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        try{
                        startActivity(pdfIntent);
                        }catch(ActivityNotFoundException e){
                        Toast.makeText(MainActivity.this, "No PDF Viewer App!", Toast.LENGTH_SHORT).show();
...

0 个答案:

没有答案