小编use*_*871的帖子

保存WebView的状态并重新加载位置

我知道有很多关于这个的问题,但它们似乎都已经老了,不再工作了 - 至少对我而言.我试图在用户退出或重新加载应用程序后保存webview的位置.我知道这段代码可以用来保存和加载Webview:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    myWebview.saveState(outState);
}
Run Code Online (Sandbox Code Playgroud)

并在onCreate:

if (savedInstanceState != null) {
    myWebview.restoreState(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

但是,在Android Developer Webview页面中,它说明了以下内容saveState:

"保存onSaveInstanceState(Bundle)中使用的WebView的状态.请注意,此方法不再存储此WebView的显示数据.如果从未调用restoreState(Bundle),之前的行为可能会泄漏文件."

链接 - https://developer.android.com/reference/android/webkit/WebView.html

如果我错了,这是支持工作,可能是我的另一个函数的实现,它保存了WebView中显示的页面的微调器选择,并以与上面显示的非常相似的方式加载.也许使用两者都不允许加载WebView的位置而只加载页面?以下是我目前要保存的内容,当用户重新加载应用程序时,将哪个HTML页面加载到WebView中.

我的onCreate:

if (savedInstanceState != null){
    mySpinner.setSelection(prefs.getInt("spinnerSelection", 0));
}
Run Code Online (Sandbox Code Playgroud)

我的onSaveInstanceState:

@Override
public void onSaveInstanceState(Bundle savedInstanceState){

    SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getBaseContext());
    SharedPreferences.Editor editor = getPrefs.edit();

    values = Integer.parseInt(getPrefs.getString("pref_Sections", "1"));
    switch (values) {
        case 1:
            int selectedPosition1 = mySpinner.getSelectedItemPosition();
            editor.putInt("spinnerSelection1", selectedPosition1);
            editor.commit();
            break;
        case 2:
            int selectedPosition2 = …
Run Code Online (Sandbox Code Playgroud)

java android savestate webview

10
推荐指数
1
解决办法
1158
查看次数

从Internet下载Doc/PDF并保存到内部存储器

我正在尝试创建一个主要打开和读取我所拥有的预定文档集的应用程序.最初的想法是在首次运行或安装时将所有文档(大约40个等于MB)复制到用户的内部存储器(/ data/data /(appname)/ files)中.我意识到这可能是个坏主意,因为有些手机的内存空间有限.我现在正在考虑改变我的应用程序的想法,从互联网上的存储位置下载文件,并将其保存到内部存储器.这样,用户只能查看所需的文档,严重削减所需内存的大小.我已经看到了一些如何下载文件的代码片段,对于这个实例我想使用PDF,但我找不到将它们保存到内部存储器(/ data/data /(app)/ files)的方法.我看过许多处理数据库的片段,但我需要保存PDF和doc文件.

有关如何的任何帮助:1.从互联网下载doc/PDF文件,2.立即将文件保存到内部存储器,3.使用第三方程序从内部存储器启动doc/PDF(例如adobe reader) .

我很感激帮助!

memory android internal download

9
推荐指数
0
解决办法
1万
查看次数

Android - 大文件下载停止 - 使用async/progressdialog

我有一个简单的代码应该执行一项任务,当单击按钮下载文件,将其保存到SD卡,然后打开它.一切正常,除了在下载期间,对于较大的文件,连接丢失和进度条挂起 - 几乎总是在20%.我搜索并搜索过,无法弄清楚如何保持连接活动并允许下载完成.任何想法如何保持连接活动,以便下载完成而不是停滞在20%?

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class DownloadTestActivity extends Activity {

   public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
   private Button startBtn;
   private ProgressDialog mProgressDialog;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.main); …
Run Code Online (Sandbox Code Playgroud)

java android asynchronous download progressdialog

7
推荐指数
1
解决办法
4125
查看次数

Android - 获取异步下载的原始文件名

我想在下载PDF文件时从网站检索原始文件名,而不是将其重命名,而是将其保存为SD/Android/Data /(MyAPP)/ Files目录下的相同名称.截至目前,我必须告诉android在查找文件名时应该是什么以及在下载时保存它的内容.是否有一种简单的方法来更改它以将其保存为原始名称?谢谢

private void startDownload() {

    String isFileThere = Environment.getExternalStorageDirectory()
            + "/Android/Data/" + getApplicationContext().getPackageName()
            + "/files/xxxxxxxx.pdf";
    File f = new File(isFileThere);

    if (f.exists()) {
        mProgressDialog.setProgress(0);
        showPdf();
    } else {

        DownloadFile downloadFile = new DownloadFile();
        downloadFile
                .execute(url);

    }
}

class DownloadFile extends AsyncTask<String, Integer, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog.show();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        super.onProgressUpdate(progress);
        mProgressDialog.setProgress(progress[0]);
    }

    @Override
    protected String doInBackground(String... aurl) {

        try {

            URL url = new URL(aurl[0]);
            URLConnection connection = url.openConnection(); …
Run Code Online (Sandbox Code Playgroud)

java pdf filenames android download

4
推荐指数
1
解决办法
5293
查看次数

禁用导航抽屉中的项目

在我的导航抽屉中我有一个问题,当它在第一个地方加载任何东西都会使应用程序崩溃,所以我的解决办法是将它设置为一个字符串,改为"(appname)Free"或"(appname)Premium ",取决于是否购买了高级升级.

我希望这个无法点击,因为它目前能够被点击但没有任何反应.理想情况下,这将是一个子菜单或标题,但我无法弄清楚如何实现它.这是我的代码的摘录:

public class myClass extends SherlockActivity implements
    OnItemSelectedListener {

private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;

private CharSequence mDrawerTitle;
private CharSequence mTitle;
private String[] mPlanetTitles;


@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mylayout);

    mTitle = mDrawerTitle = getTitle();

    if (mIsPremium == true) {
        mPlanetTitles = getResources().getStringArray(
                R.array.planets_array_prem);
    } else {
        mPlanetTitles = getResources()
                .getStringArray(R.array.planets_array);
    }

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    // set a custom shadow that overlays the main content when the …
Run Code Online (Sandbox Code Playgroud)

navigation android actionbarsherlock

3
推荐指数
1
解决办法
9838
查看次数

Android - 在webview中加载PDF

我有这个webview代码,我希望能够在用户点击PDF链接时打开PDF文件.这是代码,你能告诉我我必须把它放在PDF区域吗?我已经尝试了很多不同的方法,我根本无法查看PDF.谢谢您的帮助.

webview.setWebViewClient ( new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // do your handling codes here, which url is the requested url
        // probably you need to open that url rather than redirect:
        if (url.startsWith("tel:")) {
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
        } else if (url.startsWith("mailto:")) {
            url = url.replaceFirst("mailto:", "");
            url = url.trim();
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("plain/text").putExtra(Intent.EXTRA_EMAIL,
                    new String[]{url});
            startActivity(i);

        } else if (url.startsWith("geo:")) {
            try {
            } catch (Exception e) {
                System.out.println(e);
            }

        } else if …
Run Code Online (Sandbox Code Playgroud)

java pdf android webview webviewclient

2
推荐指数
1
解决办法
2万
查看次数