小编Niq*_*iqo的帖子

HTTP静态资源缓存永远状态

有效的Android HTTP中, Jesse Wilson提到了以下内容:

提供图像等静态资源?使用永久URL并让它永远缓存

我正在使用Picasso和一个特定的OkHttp实例来获取和缓存图像.我想知道如何设置let it cache forever策略?

我只能考虑Cache-Control: max-stale=用尽可能高的值覆盖HTTP缓存控制头max-stale(),还有另一种(更好的)方法吗?

android http http-caching picasso okhttp

8
推荐指数
1
解决办法
3248
查看次数

使用带有保留片段的Otto时出现IllegalArgumentException

我正在使用Otto 1.3.3,当我恢复我的应用程序时,我有时会得到IllegalArgumentException以下堆栈跟踪:

Caused by: java.lang.IllegalArgumentException: Producer method for type class 
com.couchsurfing.mobile.ui.setup
        .SessionProviderFragment$SessionConnectionStateChangeEvent found on 
        type class com.couchsurfing.mobile.ui.setup.SessionProviderFragment, 
        but already registered by type class 
        com.couchsurfing.mobile.ui.setup.SessionProviderFragment.
    at com.squareup.otto.Bus.register(Bus.java:194)
    at com.couchsurfing.mobile.ui.BaseRetainedFragment
       .onCreate(BaseRetainedFragment.java:20)
Run Code Online (Sandbox Code Playgroud)

SessionProviderFragment有它的实例保留,请找扩展的类如下所示:

public abstract class BaseRetainedFragment extends SherlockFragment {

    @Inject
    Bus bus;

    @Override
    public void onCreate(final Bundle state) {
        super.onCreate(state);
        ((CouchsurfingApplication) getActivity().getApplication()).inject(this);
        setRetainInstance(true);
        bus.register(this);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        bus.unregister(this);
        bus = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过使用bus.register(this)in onAttach()或者onCreate()没有改变这个问题.

android android-lifecycle otto

7
推荐指数
2
解决办法
2965
查看次数

Jenkins上的Robolectric 2.x + Maven因APKLIB依赖而失败

我使用Robolectric 2.x(我实际上使用2.1)与使用APKLIB的Android Maven项目有问题.

它接缝Robolectric 2.x期望在project.properties中引用Android库(此文件由Intellij或Eclipse自动填充).

在开发环境中使用Maven时工作正常,但是如果我想在CI服务器(Jenkins)上构建我的Android Maven项目,我的构建失败了:

java.lang.RuntimeException: huh? can't find parent for StyleData{name='Theme_Abs_cs', parent='@style/Theme_Sherlock_Light'}

显然Robolectric找不到Android库依赖项.

有没有人使用Android APKLIB + Jenkins + Maven + Robolectric 2.x进行配置?

android maven jenkins robolectric

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

有没有办法让用户在 Android 上使用 Firebase Auth 在本机代码和 WebView 之间保持登录状态?

我对构建本机和基于 WebView 的 Android 屏幕感兴趣。我希望在从本机屏幕导航到 WebView 屏幕时保持用户登录状态。但我不知道如何实现这一目标。

android android-webview firebase-authentication

5
推荐指数
0
解决办法
534
查看次数

了解ViewTreeObserver泄漏

我正在使用LeakCanary 1.3.1-SNAPSHOT.我发现有关ViewTreeObserver.OnScrollChangedListener设置的泄漏,我修复了它,如下面的代码:

  private ViewTreeObserver.OnScrollChangedListener scrollViewChangeListener;

  @Override protected void onFinishInflate() {
      super.onFinishInflate();
      ButterKnife.inject(this);
      scrollViewChangeListener = new ViewTreeObserver.OnScrollChangedListener() {
      @Override public void onScrollChanged() {
        EventDetailsView.this.onScrollChanged(scrollView.getScrollY());
      }
    };
      scrollView.getViewTreeObserver()
        .addOnScrollChangedListener(scrollViewChangeListener);
  }
  @Override public void onDetachedFromWindow() {
      super.onDetachedFromWindow();
      scrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewChangeListener);
  }
Run Code Online (Sandbox Code Playgroud)

然而,LeakCanary仍然将其报告为泄漏,任何想法为什么?

* com.couchsurfing.mobile.ui.events.detail.EventDetailsScreen$Presenter has leaked:
* GC ROOT android.view.inputmethod.InputMethodManager$1.this$0 (anonymous class extends com.android.internal.view.IInputMethodClient$Stub)
* references android.view.inputmethod.InputMethodManager.mCurRootView
* references com.android.internal.policy.impl.PhoneWindow$DecorView.mAttachInfo
* references android.view.View$AttachInfo.mTreeObserver
* references android.view.ViewTreeObserver.mOnScrollChangedListeners
* references android.view.ViewTreeObserver$CopyOnWriteArray.mData
* references java.util.ArrayList.array
* references array java.lang.Object[].[0]
* references com.couchsurfing.mobile.ui.events.detail.EventDetailsView$1.this$0 (anonymous class implements android.view.ViewTreeObserver$OnScrollChangedListener) …
Run Code Online (Sandbox Code Playgroud)

android leakcanary

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

BadParcelableException ClassNotFoundException CoordinatorLayout $ SavedState

我有一个扩展CoordinatorLayout的自定义视图,我正在重写onRestoreInstanceStateonSaveInstanceState使用扩展BaseSavedState的类的典型方法.当我的观点恢复后,我得到:


Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.design.widget.CoordinatorLayout$SavedState
at android.os.Parcel.readParcelableCreator(Parcel.java:2432)
at android.os.Parcel.readParcelable(Parcel.java:2358)
at android.view.AbsSavedState.(AbsSavedState.java:57)
at android.view.View$BaseSavedState.(View.java:21457)
at android.support.design.widget.CoordinatorLayout$SavedState.(CoordinatorLayout.java:2656)

如果我评论我的两个方法onRestoreInstanceState,onSaveInstanceState这个问题就解决了.请参阅以下自定义视图代码

 @Override
  protected Parcelable onSaveInstanceState() {
    Parcelable superState = super.onSaveInstanceState();
    SavedState ss = new SavedState(superState);
    ss.scrollX = scrollView.getScrollX();
    ss.scrollY = scrollView.getScrollY();
    return ss;
  }

  @Override
  protected void onRestoreInstanceState(Parcelable state) {
    if (!(state instanceof SavedState)) {
      super.onRestoreInstanceState(state);
      return;
    }
    final SavedState ss = (SavedState) state;
    super.onRestoreInstanceState(ss.getSuperState());

    post(() -> scrollView.scrollTo(ss.scrollX, ss.scrollY));
  } …
Run Code Online (Sandbox Code Playgroud)

android android-support-library

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

使用Proguard DX SimException进行Android构建本地0000:无效

我正在使用Ant> 1.8 + Proguard 4.6来构建我的Android项目,并且在构建过程中我遇到了异常:

SimException:本地0000:无效

请在下面找到所有构建日志:

Buildfile: build.xml
[setup] Android SDK Tools Revision 11
[setup] Project Target: Android 3.1
[setup] API level: 12
[setup] ------------------
[setup] Resolving library dependencies:
[setup] No library dependencies.
[setup] ------------------
[setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (4) is lower than the project target API level (12)
-set-release-mode:
-release-obfuscation-check:
-pre-build:
-dirs:
 [echo] Creating output directories if needed...
-aidl:
 [echo] Compiling aidl files into Java classes...
-renderscript:
 [echo] Compiling RenderScript files into Java classes and RenderScript …
Run Code Online (Sandbox Code Playgroud)

ant android exception proguard

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