小编Vai*_*ibs的帖子

在FragmentStatePagerAdapter中保存状态和还原状态

我用一ViewPagerFragmentStatePageAdapter我的屏幕上我有有许多图像,并享有5页.目前我mViewPager.setOffscreenPageLimit(1);只有当前,前一个和下一个将在内存中,其他2将被销毁.但是对于那些被破坏的片段,我想利用saveState()restoreState()适配器来维持它的状态,所以当我回到那个屏幕时,无论如何都会去onCreateView()那个片段维持状态.

由于mViewPager.setOffscreenPageLimit(4);存在内存问题,因此不是一个好选择.

我搜索了很多,但我没有得到任何使用这2个函数维持和恢复状态的样本.

有人可以帮助我继续.

android android-adapter android-fragments android-viewpager android-pageradapter

6
推荐指数
1
解决办法
8038
查看次数

想要使用带有32个字节的AES 256 CBC,但它显示了java.security.InvalidAlgorithmParameterException

我使用的是AES 256 CBC.我有32个字节的IV.但是,当我运行它时,它显示一个例外:

Exception in thread "main" java.lang.RuntimeException: java.security.InvalidAlgorithmParameterException: Wrong IV length: must be 16 bytes long
    at com.abc.aes265cbc.AESUtil.decrypt(AESUtil.java:50)
    at com.abc.aes265cbc.Security.main(Security.java:48)
Caused by: java.security.InvalidAlgorithmParameterException: Wrong IV length: must be 16 bytes long
    at com.sun.crypto.provider.CipherCore.init(CipherCore.java:430)
    at com.sun.crypto.provider.AESCipher.engineInit(AESCipher.java:217)
    at javax.crypto.Cipher.implInit(Cipher.java:790)
    at javax.crypto.Cipher.chooseProvider(Cipher.java:848)
    at javax.crypto.Cipher.init(Cipher.java:1347)
    at javax.crypto.Cipher.init(Cipher.java:1281)
    at com.abc.aes265cbc.AESUtil.decrypt(AESUtil.java:47)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题.我搜索了但是我没有得到如何解决这个问题.我是第一次尝试安全概念.我的AES 256 CBC代码是:

 public static void setENCRYPTION_IV(String ENCRYPTION_IV) {
        AESUtil.ENCRYPTION_IV  =   ENCRYPTION_IV;
    }

    public static void setENCRYPTION_KEY(String ENCRYPTION_KEY) {
        AESUtil.ENCRYPTION_KEY  =   ENCRYPTION_KEY;
    }



    public static String encrypt(String src) {
        try { …
Run Code Online (Sandbox Code Playgroud)

java security aes

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

寻找等加权图的最短路径

我有一个权重相等的图表.我怎样才能找到最短的路径?我们可以使用DijKstra's Algorithm并找到最短的路径.我认为在这种情况下将使用回溯.但是,由于图表具有相同的权重,还有其他方法可以最佳地找到最短路径吗?

language-agnostic algorithm

5
推荐指数
1
解决办法
2999
查看次数

用java上传视频到youtube

我的本地磁盘中有一个视频,我想通过我的应用程序将其上传到 YouTube。你能给我遵循同样的指导方针吗?请给我执行该操作的步骤或代码或链接。提前致谢。

在建议的解决方案之后,我尝试使用:gdata.youtube.com/feeds/api/users/users/uploads(用户作为一些用户名),但我收到 IOException.ie 与服务通信时出现问题。

  java.net.SocketException: Connection reset
 java.net.SocketInputStream.read(SocketInputStream.java:189)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:641)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:589)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1319)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
        at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:490)
        at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:470)
        at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:534)
        at com.google.gdata.client.media.MediaService.insert(MediaService.java:353)
        at ytupload.YouTubeWriteClient.uploadVideo(YouTubeWriteClient.java:508)
        at ytupload.YouTubeWriteClient.main(YouTubeWriteClient.java:828)
Run Code Online (Sandbox Code Playgroud)

请帮忙...

java jsp servlets youtube-api

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

使用输入流直接解析json

我正在做一个api电话,作为回应我得到了json.所以我想直接通过输入流解析它,这样就不需要将它存储在内存中.为此,我试图使用JSONReader,但我无法使用api的少于11.所以我不知道如何继续.我希望它从2.0版开始完成.即使通过JsonReader解析也无法正常工作.我是GSON解析器的东西但是我没有得到如何用Inputstream实现相同的功能.

编辑:我的代码相同:

HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);

try {
          HttpResponse response = client.execute(httpGet);
          StatusLine statusLine = response.getStatusLine();
          int statusCode = statusLine.getStatusCode();
          Log.e("123", "Status code ----------- "+statusCode);
          if (statusCode == 200) { 
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();


            // for showing it on textview i am storing in in builder
            BufferedReader bReader = new BufferedReader(new InputStreamReader(content));
            String line;
            while ((line = bReader.readLine()) != null) {
              builder.append(line);
            }

//////////// 
            JsonReader reader = new JsonReader(new InputStreamReader(content)); …
Run Code Online (Sandbox Code Playgroud)

android json gson android-parser

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