使用 RxJava 注册 Google GCM [英] Register Google GCM by using RxJava

查看:20
本文介绍了使用 RxJava 注册 Google GCM的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在浏览网络和 RxDoc 后从 AsyncTask 更改为 RxJava,但我找不到任何解决方案.有人知道吗?

I want to change from AsyncTask to RxJava after go through around the web and RxDoc, I cound not found any solution about. Anyone has any idea?

 public void getRegId(){
        new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... params) {
                String msg = "";
                try {
                    if (gcm == null) {
                        gcm = GoogleCloudMessaging.getInstance(getApplicationContext());
                    }
                    regid = gcm.register(PROJECT_NUMBER);
                    msg = "Device registered, registration ID=" + regid;
                    Log.i("GCM",  msg);

                } catch (IOException ex) {
                    msg = "Error :" + ex.getMessage();

                }
                return msg;
            }

            @Override
            protected void onPostExecute(String msg) {
                etRegId.setText(msg + "\n");
            }
        }.execute(null, null, null);
    }

推荐答案

以下是一个示例,展示了如何使用 RxJava 包装您的方法:

Here is an example showing how to wrap your method with RxJava:

    Observable.defer(new Func0<Observable<String>>() {
        @Override
        public Observable<String> call() {
            String msg = doSomeWork();
            return Observable.just(msg);
        }
    }).subscribeOn(Schedulers.computation())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<String>() {
                @Override
                public void onCompleted() {}

                @Override
                public void onError(Throwable e) {}

                @Override
                public void onNext(String msg) {
                    etRegId.setText(msg + "\n");
                }
            });

这篇关于使用 RxJava 注册 Google GCM的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆