我试图在全局级别的应用程序中处理异常,因此改造会抛出一个错误,我会在一些特定的类中捕获它,并使用逻辑来处理这些错误.
我有一个界面
@POST("/token")
AuthToken refreshToken(@Field("grant_type") String grantType, @Field("refresh_token") String refreshToken);
Run Code Online (Sandbox Code Playgroud)
和可观察的
/**
* Refreshes auth token
*
* @param refreshToken
* @return
*/
public Observable<AuthToken> refreshToken(String refreshToken) {
return Observable.create((Subscriber<? super AuthToken> subscriber) -> {
try {
subscriber.onNext(apiManager.refreshToken(REFRESH_TOKEN, refreshToken));
subscriber.onCompleted();
} catch (Exception e) {
subscriber.onError(e);
}
}).subscribeOn(Schedulers.io());
}
Run Code Online (Sandbox Code Playgroud)
当我从服务器获得401(无效令牌或其他一些网络相关的错误)时,我想刷新令牌并重复其余的呼叫.是否有一种方法可以使用rxjava对所有其余的调用使用某种可观察的全局捕获此错误,处理它并重复抛出它的调用?
现在我使用subject来捕获.subscribe()这样的错误
private static BehaviorSubject errorEvent = BehaviorSubject.create();
public static BehaviorSubject<RetrofitError> getErrorEvent() {
return errorEvent;
}
Run Code Online (Sandbox Code Playgroud)
并在一些电话中
getCurrentUser = userApi.getCurrentUser().observeOn(AndroidSchedulers.mainThread())
.subscribe(
(user) -> {
this.user = user;
},
errorEvent::onNext
);
Run Code Online (Sandbox Code Playgroud)
然后在我的主要活动中,我订阅该行为主题并解析错误 …
我正在尝试使用facebook登录我的应用程序.我有一个主要活动和几个片段.使用facebook sdk 3.5.2我通过facebook官方教程做了一次,但是当我添加这一行时,authButton.setFragment(this);它给了我一个错误,我的片段不是一个片段.
(LoginButton类型中的方法setFragment(Fragment)不适用于参数(FaceobookLoginFragment))
我正在将主要类的片段添加到动作栏中
ActionBar bar = getActionBar();
bar.setDisplayShowHomeEnabled(false);
bar.setDisplayShowTitleEnabled(false);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
String FloginTitle = "Flogin";
ActionBar.Tab FloginTab = bar.newTab();
FloginTab.setText(FloginTitle);
FloginTab.setTabListener(new TabListener(this, FloginTitle, FaceobookLoginFragment.class));
bar.addTab(FloginTab);
Run Code Online (Sandbox Code Playgroud)
这是听众
public class TabListener implements ActionBar.TabListener{
private final FragmentActivity fActivity;
private final String ftag;
private final Class fragmentClass;
private Fragment fragment;
public TabListener(FragmentActivity activity, String tag, Class fragmentClass ) {
this.fActivity = activity;
this.ftag = tag;
this.fragmentClass = fragmentClass;
this.fragment = activity.getFragmentManager().findFragmentByTag(tag);
}
@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) …Run Code Online (Sandbox Code Playgroud) Api 有一个我需要设置的令牌标头,但视频未加密。我有两个问题:如何使用 exoplayer 从磁盘播放 .mpg、.mpeg、.3gp、.mov 和其他文件?如何使用 exoplayer 设置标题并从 url 流式传输 mp4 视频?
我有两个片段,每个片段都有发布主题,在onResume()初始化时调用onNext(true).我想结合这两个主题,并在它们都返回true时调用第三类中的某些方法.我需要使用Observable吗?我找不到合适的操作,zip不起作用,因为这些是主题.我该如何结合这些?