[英]How to delete a file on google drive using Google Drive Android API
[英]Using ASyncTask for Reading from a File with Google Drive API on Android
我在Android設備上使用Google Drive API。
我需要將Google雲端硬盤上文件的內容獲取為字符串。 簡單的東西
String dbData = driveObject.downloadFileToString("db_export.txt");
我正在實現“ GoogleDrive”對象。 我需要做到這一點,而又不要弄亂所有的任務,線程和回調。 但是,我做不到。
這是一個示例:我實現了一個名為“ findFileByPath”的方法,該方法返回路徑名作為參數給出的文件的文件ID。 但是,Android眾神已經強迫對此進行任何調用-因為它處理網絡活動-發生在線程或AsyncTask中。 問題在於,等待任務完成的任何暫停都會導致Google Drive API線程暫停。 所以....如果我這樣做:
FindFileWithAsyncTask ffwat = new FindFileWithAsyncTask();
ffwat.execute(filePath);
File f = ffwat.get(5, TimeUnits.SECONDS);
在名為“ FindFileWithAsyncTask”的AsyncTask中完成對“ findFileByPath”的調用,它只是掛起了所有內容。 僅當“獲取”超時時,Google Drive API才會繼續運行。
救命! 必須有一種方法可以避免或掩蓋所有異步BS。
有什么線索嗎? 謝謝!
使用網絡服務時,很難擺脫AsyncTasks,因為否則您的UI將凍結以等待結果。
嘗試這樣做:
new AsyncTask<String, Void, String>() {
@Override
protected String doInBackground(String... params) {
String dbData = driveObject.downloadFileToString("db_export.txt");
return dbData;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
File f = new File(s);
}
}.execute();
然后,您將等待onPostExecute方法上的結果。 動態創建AsyncTask會減少無聊的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.