移动后端云平台Bmob介绍

作者:网络    软件教程库   2020-05-14

对于移动端的独立开发者来说,最痛苦的事情莫过于搭建后台服务器。没有基础的还得从头学起,有技术的又要搭建维护后台,非常麻烦。而移动后端云平台的出现,简直是每个独立开发者的福音,它可以免费提供论文服务器,有数据文件服务,还有社交功能等。国内主流的有友盟、极光推送,bmob,avos cloud等,下面介绍老少咸宜的bmob


如何链接到bmob的服务器开发文档都有,开发文档有没具体介绍的是文件下载功能。文件下载,首先是通过数据查询获得

bmobfile对象 ,然后通过该对象的getfileurl()方法获得下载链接,最后通过链接下载。下面是一个实现了添加数据、查询数据、文件上传、文件下载、推送功能的例子:

package com.example.bombexample;

import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.util.arraylist;
import java.util.list;

import org.json.jsonobject;

import com.lidroid.xutils.httputils;
import com.lidroid.xutils.exception.httpexception;
import com.lidroid.xutils.http.responseinfo;
import com.lidroid.xutils.http.callback.requestcallback;

import cn.bmob.push.bmobpush;
import cn.bmob.v3.bmob;
import cn.bmob.v3.bmobinstallation;
import cn.bmob.v3.bmobpushmanager;
import cn.bmob.v3.bmobquery;
import cn.bmob.v3.datatype.bmobfile;
import cn.bmob.v3.listener.findlistener;
import cn.bmob.v3.listener.getcallback;
import cn.bmob.v3.listener.getlistener;
import cn.bmob.v3.listener.savelistener;
import cn.bmob.v3.listener.uploadfilelistener;
import android.os.bundle;
import android.os.environment;
import android.app.activity;
import android.util.log;
import android.view.menu;
import android.view.view;
import android.widget.toast;

public class mainactivity extends activity {

	private listuser users=new arraylistuser();
	private httputils httputils=null;
	bmobfile bmobfile =null;
	@override
	protected void oncreate(bundle savedinstancestate) {
		super.oncreate(savedinstancestate);
		setcontentview(r.layout.activity_main);
		
		bmob.initialize(this, 3b728750d1755e56dd680fa76c4a8386);
		
		  // 使用推送服务时的初始化操作
	    bmobinstallation.getcurrentinstallation(this).save();
	    // 启动推送服务
	    bmobpush.startwork(this, 3b728750d1755e56dd680fa76c4a8386);
	    httputils=new httputils();
		
	}
	
	// 向服务期添加数据
	public void add(view view)
	{ 
		
		for(int i=0;i10;i++)
		{
			user user=new user();
			user.setname(gaigai+i);
			user.setpassword(hlb+i);
			users.add(user);
		}
		
		for(final user user:users)
		{
			
			user.save(this, new savelistener() {
				
				@override
				public void onsuccess() {
					
					toast.maketext(mainactivity.this, 添加数据成功+user.getobjectid(), toast.length_short).show();
				}
				
				@override
				public void onfailure(int arg0, string arg1) {
					
					toast.maketext(mainactivity.this, 添加数据失败, toast.length_short).show();
					
				}
			});
		}
		
	}
	
	// 查询服务器数据
	public void query(view view)
	{
		bmobqueryuser query=new bmobqueryuser(); 
		query.getobject(this,f69efc2ca8,new getlisteneruser() {
			
			@override
			public void onsuccess(user arg0) {
				
				toast.maketext(mainactivity.this,
						arg0.getname()+ +arg0.getpassword(), toast.length_short).show();
				
			}
			
			@override
			public void onfailure(int arg0, string arg1) {
				
			}
		});
	}
	
	// 查询服务器所有数据
	public void queryall(view view)
	{
		bmobqueryuser query=new bmobqueryuser();
		query.findobjects(this, new findlisteneruser() {
			
			@override
			public void onsuccess(listuser arg0) {
				
				toast.maketext(mainactivity.this, arg0.size()+, toast.length_short).show();
			}
			
			@override
			public void onerror(int arg0, string arg1) {
				// todo auto-generated method stub
				
			}
		});
		
	}
	
	
	// 推送功能
	public void data_push(view view)
	{
		bmobpushmanager bmobpush = new bmobpushmanager(this);
		bmobpush.pushmessageall(哈哈哈哈.);
		
	}
	
	
	// 文件上传
	public void upload(view v) throws ioexception
	{
		inputstream in=getassets().open(byx.jpg);
		file file=new file(environment.getexternalstoragedirectory()+/byx.jpg);
		if(!file.exists())
		{
			file.createnewfile();
		}
		
		fileoutputstream out=new fileoutputstream(file);
		int len=0;
		byte []buffer=new byte[1024];
		
		while((len=in.read(buffer))!=-1)
		{
			out.write(buffer, 0, len);
		}
		
		out.close();
		in.close();
		bmobfile = new bmobfile(file);
		bmobfile.upload(this, new uploadfilelistener() {
			
			@override
			public void onsuccess() {
				// todo auto-generated method stub
				toast.maketext(mainactivity.this, bmobfile.getfileurl(mainactivity.this)+, toast.length_short).show();
				log.i(url, bmobfile.getfileurl(mainactivity.this));
			}
			
			@override
			public void onfailure(int arg0, string arg1) {
				// todo auto-generated method stub
				toast.maketext(mainactivity.this, 上传文件失败, toast.length_short).show();
			}
		});
		
	}
	
	
	// 文件下载
	
	public void download(view v)
	{
		bmobquerytest query=new bmobquerytest();
		query.getobject(this, nt7raaag, new getlistenertest() {
			
			@override
			public void onsuccess(test arg0) {
				
				arg0.getthumbnail().getfileurl(mainactivity.this);
				log.i(url,arg0.getthumbnail().getfileurl(mainactivity.this));
				downloadpic(arg0.getthumbnail().getfileurl(mainactivity.this),arg0.getthumbnail().getfilename());
			}
			
			@override
			public void onfailure(int arg0, string arg1) {
				// todo auto-generated method stub
				
			}
		});
		
	}
	
	
	public void downloadpic(string url,string filename)
	{
		httputils.download(url, environment.getexternalstoragedirectory()+/+filename, new requestcallbackfile() {
			
			@override
			public void onsuccess(responseinfofile responseinfo) {
				log.i(download,文件存储路径+responseinfo.result.getpath());
			}
			
			@override
			public void onfailure(httpexception error, string msg) {
				// todo auto-generated method stub
				
			}
		});
	}
}

项目下载地址:http://download.csdn.net/detail/aehaojiu/8653135


移动后端云平台bmob介绍

原文地址:http://blog.csdn.net/aehaojiu/article/details/45426583

软件教程库 该篇文章地址:https://www.itjcku.com/9999/1091397.html

阅读全部内容


Tags:移动挪动后端平台介绍

返回首页



推荐内容

WAMP配置虚拟主机

问题背景:从网上下载了一个php项目a,a项目需要部署在网站的根目录下。配置虚拟主机可以解决这个问题。1.打开apach ...

java克隆测试

1.person类 1 //clone方法必须实现cloneable接口 2 public class perso ...

C++string中用于查找的find系列函数浅析

总述:以下所讲的所有的string查找函数,都有唯一的返回类型,那就是size_type,即一个无符号整数(按打印出来的 ...

Savingoutputofagrepintoafilewithcolors

19 down vote favorite 7 i need to save the result o ...

hibernate异常之QueryException

org.hibernate.queryexception: expected positional parameter ...

Redis的Python客户端redis-py的初步使用

1. 安装 sudo pip install redis sudo pip install hiredis pa ...

《构建高性能Web站点》笔记

书名:构建高性能web站点 出版社: 电子工业出版社 isbn:9787121170935 一 绪论 等待的时间: ( ...

制作OSX10.10.3启动安装U盘

1.获得install os xyosemite.app 2.准备一个8gb的u盘,用磁盘工具抹掉,格式默认的mac o ...

域名解析URL转发

url转发 转发功能:如果您没有一台独立的服务器(也就是没有一个独立的ip地址)或者您还有一个域名b,您想访问a域名时访 ...

instancetypeVSid

英文好的直接读下面链接的文章就好了: http://stackoverflow.com/questions/897222 ...

androidapp开发感想

这几天帮学长做app的时候,照着视频学了json数据的传递,接着遇到了问题,就是httpurlconnection会 ...

常用软件及注册码

vmware-workstation-full-11.0.0-2305329.exe m50ac-j034j-08l8a ...

[POJ3420]QuadTiling

quad tiling time limit:1000ms memory limit:65536k to ...

C-关键字,标识符,注释

一.关键字:c语言中提供了有特殊含义的符号,也叫做保留字。 c语言中一个32个关键字,这些关键字都被赋予了 ...

C-基本概念

一.程序结构 1.c 程序结构:任何一个c程序都是由一个或小个程序代码块组成,每个小程序都有自己的功能,一般称这些小 ...

应该具备的能力

1. 学习能力(learning ability)   有些东西不懂很正常,从不懂到懂,从懂到精通,自己想想,原来不会的 ...

Apache-rhel5.8环境下编译安装

apache安装过程 step 1:安装包gcc或gcc-c++# yum install gcc#yum insta ...

OpenWrt学习目标

最近在研究openwrt,总感觉这一看一点那也了解一点,没有目的,也没有重心。 这里,给自己拟定一个目标,就朝着这个目标 ...

HelloKiki(hdu3579+不互质的中国剩余定理)

hello kiki time limit:1000msmemory limit:32768kb64bit io ...

android环境下摄像头数据采集及显示

以前项目涉及些摄像头预览及数据处理操作,当时的需求是除了做摄像头预览外,还要显示文字、个性图像等,当初在查找资料实 ...

uva10003CuttingSticks简单区间dp

// uva 10003 cutting sticks 区间dp // 经典的区间dp // dp(i,j)表示切割小木 ...

Go的语言特性总结

写在前面: 近来关于对golang的讨论有很多,七牛的几个大牛们也断定go语言在未来将会快速发展,并且很可能会取代ja ...

golang控制channel的出入口

golang控制channel的出入口 我们常常使用channel来在多个goroutine之间做数据通讯,但是cha ...

UVA10479TheHendrieSequence规律

题目大意:一个序列,刚开始由0变到了1,接着往后一个个变化下去 变化的规则是,如果当前数是k,就在这个序列的最后面加上 ...

在不是Activity类中调用Toast和Dialog

有时候我们需要在非activity类中处理一些逻辑,显示toast对话框或者是弹出一个dialog,但是在非activi ...

查询Oraclesql语句中绑定变量值的方法

alter session set nls_date_format = #39;yyyy-mm-dd,hh24:mi:s ...

Hdoj1588GaussFibonacci【矩阵快速幂】

gauss fibonacci time limit: 1000/1000 ms (java/others) m ...

Hdoj5195DZYLovesTopologicalSorting【拓扑】+【线段树】

dzy loves topological sorting time limit: 4000/2000 ms (jav ...

【转自mos文章】使用单条sql来查询出awr中的syatemstatistics

使用单条sql来查询出awr中的syatem statistics 参考自: how to monitor system ...

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之u-boot移植

前段时间就开始学习i.mx6q了,但是最近工作实在是忙,间断了一些时间了。为了提高移植效率,还是考虑移植freescal ...


本网站部分内容来自互联网,版权归原作者所有,文章内容仅代表原作者个人观点。如有侵权请联系我们删除 电子邮件 itjcku@foxmail.com