public static class ExportDatabaseFileTask extends AsyncTask<String, Void, Boolean> { 
        private Context ctx; 
 
       
        public ExportDatabaseFileTask(Context ctx) { 
            super(); 
            this.ctx=ctx; 
        } 
 
                protected Boolean doInBackground(final String... args) { 
 
           File dbFile = 
                    new File(Environment.getDataDirectory() + "/data/[com.your.pkg]/databases/[pkg]"); 
 
           File exportDir = new File(Environment.getExternalStorageDirectory(), ""); 
           if (!exportDir.exists()) { 
              exportDir.mkdirs(); 
           } 
           File file = new File(exportDir, dbFile.getName()); 
 
           try { 
              file.createNewFile(); 
              this.copyFile(dbFile, file); 
              return true; 
           } catch (IOException e) { 
              Log.e("birthdroid", e.getMessage(), e); 
              return false; 
           } 
        } 
 
               protected void onPostExecute(final Boolean success) { 
           if (success) { 
              Toast.makeText(ctx, "Export successful!", Toast.LENGTH_SHORT).show(); 
           } else { 
              Toast.makeText(ctx, "Export failed", Toast.LENGTH_SHORT).show(); 
           } 
        } 
 
        void copyFile(File src, File dst) throws IOException { 
           FileChannel inChannel = new FileInputStream(src).getChannel(); 
           FileChannel outChannel = new FileOutputStream(dst).getChannel(); 
           try { 
              inChannel.transferTo(0, inChannel.size(), outChannel); 
           } finally { 
              if (inChannel != null) 
                 inChannel.close(); 
              if (outChannel != null) 
                 outChannel.close(); 
           } 
        } 
 
     }