这是用简单数据库SharedPreferences,来保存PDF文件阅读记录读到当前页,简单好用,当然,小型数据储存都可以用它,例如登陆信息等
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
String filename = "";
private PDFView pdfView;
private TextView pageTv;
private TextView pageTv1;
private int myPage = 0;
public static void verifyStoragePermissions(Activity activity) {
// Check if we have write permission
int permission = ActivityCompat.checkSelfPermission(activity,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdflook);
Bundle bundle = this.getIntent().getExtras();
filename = bundle.getString("file");
SharedPreferences pref = getSharedPreferences("PageLog", MODE_PRIVATE);
myPage = pref.getInt(filename, 0);//第二个参数为默认值
pdfView = (PDFView) findViewById(R.id.pdfView);
pageTv = (TextView) findViewById(R.id.pageTv);
pageTv1 = (TextView) findViewById(R.id.pageTv1);
Context context = PDFLookActivity.this;
String path = Environment.getExternalStorageDirectory().getPath()+"/"+context.getExternalCacheDir().getPath();
System.out.println("????"+path);
File file = new File(path + "/" + filename + ".pdf");
lookFile(file);
}
public void lookFile(File file) {
verifyStoragePermissions(PDFLookActivity.this);
pdfView.useBestQuality(true);
pdfView.fromFile(file)
.swipeHorizontal(false)
.enableAntialiasing(true)
.defaultPage(myPage)
.onLoad(new OnLoadCompleteListener() {
@Override
public void loadComplete(int nbPages) {
pageTv.setText(nbPages + "");
pageTv1.setText((myPage+1) + "/");
}
})
.onPageChange(new OnPageChangeListener() {
@Override
public void onPageChanged(int page, int pageCount) {
myPage = page;
pageTv1.setText(page+1 + "/");
}
})
.load();
}
public void SavePdfPage(String filename, int page) {
SharedPreferences preferences = getSharedPreferences("PageLog", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt(filename, page);
editor.commit();
}
@Override
protected void onPause() {
super.onPause();
SavePdfPage(filename, myPage);
}