JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java ME、Google Android 平台與 JavaCard 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 透過Room取得SQLite LiveData資料後,想做資料前處理再呈現至手機畫面的問題
weberhwang





發文: 52
積分: 0
於 2022-05-22 01:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
大家好

我用 Android Studio 在開發手機 app

版本
compileSdk 32
minSdk 26
targetSdk 32

我的程式在正常的情況下,皆能透過 Room 取得 SQLite 裡面的資料,並透過 LiveData 的方式由前端畫面去observe
但我若須要在取得 資料庫資料後,進行一些秀至畫面前的前處理,我發現就會當掉。

例如下面這段程式碼,我只是加了一列 Log.d 就會導致程式失敗
我猜測會不會是跟背景執行有關?但 Log.d 已經是放在 doInBackground 裡面了,
要如何改寫才能讓我在取得 LiveData 後進行一些資料計算或前處理的動作而不會當掉?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    private static class GetTransByProjectCodeAsyncTask extends AsyncTask<String, Void, LiveData<List<Trans>>> {
        private TransDao transDao;
 
        private GetTransByProjectCodeAsyncTask(TransDao transDao) {
            this.transDao = transDao;
        }
 
        @Override
        protected LiveData<List<Trans>> doInBackground(String... params) {
            // params[0] 傳入的是 ProjectCode
            LiveData<List<Trans>> trans = transDao.getTransByProjectCode(params[0]);
            // 若是移除下面這行,前端介面是能夠正常取得 trans 的資料並秀出來的
            // 但我若只要加入 Log.d 這行 就會當掉 都會說我 trans 是 null
            // 我的猜測會不會是跟背景執行有關?但我下面這列 Log.d 已經是放在 doInBackground 裡面了,
            // 要如何改寫才能讓我在取得 LiveData 後進行一些資料計算或前處理的動作而不當掉?
            Log.d("MyLog", String.valueOf(trans.getValue().size()));
            return transDao.getTransByProjectCode(params[0]);
        }
    }


weberhwang edited on 2022-05-22 01:36
reply to postreply to post
» JWorld@TW »  Java ME、Google Android 平台與 JavaCard 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8