【实例简介】
【实例截图】
【核心代码】
package laobi.com.rxjavademo.activity;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import laobi.com.rxjavademo.R;
import laobi.com.rxjavademo.RxService;
import laobi.com.rxjavademo.ServiceFactory2;
import laobi.com.rxjavademo.bean.RetrofitEntity;
import laobi.com.rxjavademo.databinding.ActivityMainBinding;
import laobi.com.rxjavademo.net.DefaultObserver2;
import laobi.com.rxjavademo.utils.ToastUtils;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "date";
private ActivityMainBinding mBinding;
private Bitmap mBitmap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
mBinding.getResult.setOnClickListener(this);
mBinding.rxJava.setOnClickListener(this);
//以兆(M)为单位
//也可以在Android Monitor的Monitors查看
// Log.e(TAG, "系统现在分配给app的大小:" Runtime.getRuntime().totalMemory() * 1.0f /(1024*1024) );
// Log.e(TAG, "空闲内存大小:" Runtime.getRuntime().freeMemory() * 1.0f /(1024*1024) );
// Log.e(TAG, "内存总大小:" Runtime.getRuntime().maxMemory() * 1.0f /(1024*1024) );
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.get_result:
sendRequestFromServer();
break;
case R.id.rx_java:
startActivity(new Intent(this, RxjavaTestActivity.class));
break;
}
}
private void sendRequestFromServer() {
ServiceFactory2.getInstance().create(RxService.class)
.getAllVedioBy(true)
// .compose(this.>bindToLifecycle())//绑定生命周期
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DefaultObserver2(this) {
@Override
protected void onFail(RetrofitEntity response) {
String message = response.getMessage();
if (TextUtils.isEmpty(message)) {
ToastUtils.show(R.string.response_return_error);
} else {
ToastUtils.show(message);
}
}
@Override
public void onSuccess(RetrofitEntity response) {
mBinding.result.setText(response.getData().toString());
Log.e(TAG, "accept: " response.getData().toString());
}
}
);
}
}