Bmob的简单使用

Bmob是移动后端服务,它帮我们把服务器端的东西全部打包,做移动端的人不用再考虑如何写服务器端,如何设计数据库,搭建服务器等,它把一切都放入了云端,用户只需要调用API接口,就可以实现网络功能。

1.数据服务

集成Bmob
1.下载Bmob SDK
2.在AndroidManifest里添加相关权限
3.在程序入口初始化BmobSDK
( Bmob.initialize(this, “Your Application ID”);)

快速集成数据服务文档地址:http://docs.bmob.cn/android/faststart/index.html?menukey=fast_start&key=start_android

Demo

package com.example.day0123;


import java.util.List;

import com.example.day0123.bean.People;

import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.FindCallback;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

    Button btAdd;
    Button btQuery;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化 Bmob SDK
        // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID
        Bmob.initialize(this, "218a52278701bf901984128034691b9b");

        btAdd = (Button) findViewById(R.id.add);
        btAdd.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                addPeople();
            }
        });

        btQuery = (Button) findViewById(R.id.query);
        btQuery.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                query();
            }
        });

    }


    private void addPeople() {
        //people是继承BmobObject的Bean
        People people1 = new People();
        people1.setName("yj");
        people1.setSex("男");
        people1.setAge(23);

        //如果数据库没有People这个表就会自动添加这个表并插入数据,有的话就会插入数据
        people1.save(this,new SaveListener() {

            @Override
            public void onSuccess() {
                Log.v("TAG", "success..");
            }

            @Override
            public void onFailure(int arg0, String arg1) {
            Log.v("TAG", "fail by " + arg1);
            }
        });
    }


    private void query() {
        BmobQuery<People> query = new BmobQuery<People>();
        //添加查询条件
        //query.addWhereEqualTo("name", "yj");

        query.findObjects(this, new FindListener<People>() {

            @Override
            public void onSuccess(List<People> arg0) {
                String list = "";
                for (int i = 0;i<arg0.size();i++) {
                    list += arg0.get(i).getName()+" ; "+arg0.get(i).getSex()+" ; "+arg0.get(i).getAge()+"\n";
                }
                Log.v("TAG", list);
            }

            @Override
            public void onError(int arg0, String arg1) {
                Log.v("TAG", "error by " + arg1);
            }
        });

    }

}

2.推送服务

集成Bmob推送
1.下载Bmob SDK
2.在AndroidManifest里添加相关权限
3.AndroidManifest里添加相关服务和接受者
3.在程序入口初始化BmobSDK和启动推送服务

// 初始化BmobSDK
Bmob.initialize(this, “你的AppKey”);
// 使用推送服务时的初始化操作
BmobInstallation.getCurrentInstallation(this).save();
// 启动推送服务
BmobPush.startWork(this, “你的AppKey”);

快速集成推送服务文档地址:http://docs.bmob.cn/androidpush/index.html?menukey=otherdoc&key=androidpush

demo

Mainactivity.java

...
    // 初始化 Bmob SDK
        // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID
        Bmob.initialize(this, "218a52278701bf901984128034691b9b");

        // 使用推送服务时的初始化操作
        BmobInstallation.getCurrentInstallation(this).save();
        // 启动推送服务
        BmobPush.startWork(this, "218a52278701bf901984128034691b9b");

...

BmobReceiver.java

package com.example.day0123.receiver;

import cn.bmob.push.PushConstants;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BmobReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
         if(intent.getAction().equals(PushConstants.ACTION_MESSAGE)){
                Log.v("TAG", "客户端收到推送内容:"+intent.getStringExtra(PushConstants.EXTRA_PUSH_MESSAGE_STRING));
            }
    }

}

最主要还是看官方的开发文档,描述的非常的详细和简单
地址:http://www.bmob.cn/docs

### 如何使用 Bmob 云服务 #### 集成 Bmob 云服务 SDK 为了在项目中使用 Bmob 云服务,首先需要将 Bmob 的 SDK 添加到项目的依赖项中。如果是在 Android 平台上开发,则可以通过 Gradle 文件引入相应的库版本 `bmob-sdk:3.4.6-0304`[^4]。 ```gradle dependencies { implementation 'cn.bmob.android:bmob-sdk:3.4.6-0304' } ``` 完成上述操作后,在代码运行前还需要初始化该 SDK。这一步通常会在应用程序启动时执行一次: ```java import cn.bmob.v3.BMob; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); BMob.initialize(this, "你的AppKey"); } } ``` 这里的 `"你的AppKey"` 是指你在 Bmob 后台创建应用时分配给它的唯一标识符[^3]。 #### 数据的操作 (增删改查) 一旦完成了基础配置工作之后就可以利用其提供的 API 来管理云端的数据对象了。下面是一些基本的例子展示如何进行数据的增加、删除、更新以及查询操作[^1]: ##### 增加记录 向服务器新增一条数据非常简单,只需要实例化对应的实体类并调用 save 方法即可: ```java MyObject object = new MyObject(); object.setField("value"); object.save(new SaveListener<String>() { @Override public void done(String objectId, BmobException e) { if(e == null){ Log.i("bmob","保存成功,返回objectId为:"+objectId); }else{ Log.i("bmob","保存失败:" + e.getMessage()); } } }); ``` ##### 删除记录 当不再需要某条特定的信息时可依据此信息的对象 ID 调用 delete 函数来移除它: ```java BmobQuery<MyObject> query = new BmobQuery<>(); query.getObject(objectId, new QueryListener<MyObject>() { @Override public void done(MyObject myObject, BmobException e) { if(myObject != null && e == null){ myObject.delete(new UpdateListener() { @Override public void done(BmobException e) { if(e==null){ Log.d("delete", "删除成功!"); } else { Log.e("error",e.toString()); } } }); } } }); ``` ##### 修改记录 对于已经存在的数据也可以很方便地对其进行编辑后再提交回数据库存储起来: ```java BmobQuery<MyObject> query = new BmobQuery<>(); query.getObject(objectId,new QueryListener<MyObject>(){ @Override public void done(MyObject myObject,BmobException e){ if(e==null&&myObject!=null){ myObject.setField("newValue"); myObject.update(new UpdateListener() { @Override public void done(BmobException e) { if(e==null){ Log.d("update","修改成功!"); }else{ Log.e("error",e.toString()); } } }); } } }); ``` ##### 查询记录 最后还可以编写复杂的条件语句去检索满足某些标准的结果集出来供前端显示或者进一步处理: ```java BmobQuery<MyObject> query = new BmobQuery<>(); // 可选设置过滤器等参数... List<BmobQuery<MyObject>> queries = Arrays.asList(query); final List<MyObject> results = new ArrayList<>(); for(int i=0;i<queries.size();i++) { final int index=i; queries.get(i).findObjects(new FindListener<MyObject>() { @Override public void done(List<MyObject> list, BmobException ex) { synchronized(results){ if(ex==null){ results.addAll(list); } // 如果当前线程是最后一个请求则通知主线程继续往下走 if(index==(queries.size()-1)){ runOnUiThread(() -> processResults(results)); } } } }); } ``` 以上便是关于怎样运用 Bmob 提供的服务来进行常规性的 CRUD 操作的一个概括介绍。 #### PHP 接口中的 dataType() 除了移动端的支持外,Bmob 还提供了基于 RESTful 架构风格设计而成的一套 Web Service APIs 方便其他平台上的开发者也能轻松接入进来共同构建跨设备间无缝衔接的应用生态系统。比如在其官方发布的 Php 版本客户端里头定义了一个名为 **dataType** 的辅助函数用来指定发送 HTTP 请求体内的 Content-Type 头字段值应该采用 application/json 形式还是 multipart/form-data 类型等等[^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值