多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 移動后端云平臺Bmob介紹

移動后端云平臺Bmob介紹

來源:程序員人生   發布時間:2015-06-19 08:25:53 閱讀次數:4970次
    對移動真個獨立開發者來講,最痛苦的事情莫過于搭建后臺服務器。沒有基礎的還得從頭學起,有技術的又要搭建保護后臺,非常麻煩。而移動后端云平臺的出現,簡直是每一個獨立開發者的福音,它可以避免費提供論文服務器,有數據文件服務,還有社交功能等。國內主流的有友盟、極光推送,Bmob,AVOS Cloud等,下面介紹老少咸宜的Bmob

    如何鏈接到Bmob的服務器開發文檔都有,開發文檔有沒具體介紹的是文件下載功能。文件下載,首先是通過數據查詢取得

BmobFile對象 ,然后通過該對象的getFileUrl()方法取得下載鏈接,最后通過鏈接下載。下面是1個實現了添加數據、查詢數據、文件上傳、文件下載、推送功能的例子:

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 List<User> users=new ArrayList<User>(); 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;i<10;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) { BmobQuery<User> query=new BmobQuery<User>(); query.getObject(this,"f69efc2ca8",new GetListener<User>() { @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) { BmobQuery<User> query=new BmobQuery<User>(); query.findObjects(this, new FindListener<User>() { @Override public void onSuccess(List<User> 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))!=⑴) { 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) { BmobQuery<Test> query=new BmobQuery<Test>(); query.getObject(this, "nt7rAAAG", new GetListener<Test>() { @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 RequestCallBack<File>() { @Override public void onSuccess(ResponseInfo<File> 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


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久亚洲精品无码观看不卡 | 欧美丝袜高跟鞋一区二区 | 国产高清一区二区三区免费视频 | 成人ab片 | 欧美亚洲综合在线观看 | a4yy私人毛片在线 | 九九精品免视看国产成人 | 欧美三级超在线视频 | 黄网站在线播放视频免费观看 | 亚洲精品一区二区观看 | 最近中文版字幕在线观看 | 性欧美video另类hd亚洲人 | 欧美日韩国产精品自在自线 | 致命坏男人漫画登录页面免费漫画第三话 | 日本欧美强乱视频在线 | 亚洲理论视频 | 日韩三级免费 | 久久久久在线观看 | 欧美在线精品永久免费播放 | 国产精品综合 | 波多野氏免费一区 | 动漫毛片| 亚洲综合久久1区2区3区 | 国产精品亚洲午夜不卡 | 国产高清视频免费在线观看 | 国产精品爱久久久久久久 | 久久久夜 | 国产九九免费视频网站 | 国产成人精品一区二区三区 | 国产亚洲一区在线 | 成人在线网| 亚洲色播永久网址大全 | 黄色天堂在线 | 日本护士xxxxx在线 | 国产成人综合亚洲一区 | 最近中文字幕视频完整 | 亚洲精品成人网 | 国产一区二区视频在线 | 亚洲黄色高清 | 亚洲天堂网站在线 | 91亚洲国产成人久久精品网址 |