【質問】dbとStrictMode

161 views
Skip to first unread message

三宅義之

unread,
Jul 23, 2014, 8:33:38 PM7/23/14
to android-g...@googlegroups.com
いつもお世話になっております。

dbとStrictModeについてご教授頂きたく存じます。
現在、アプリのUIスレッドかコンテンツプロバイダー経由でdbアクセスを行っておりますが、
StrictModeDiskWriteViolation、StrictModeDiskReadViolationという警告がでます。

StrictModeでUIスレッドから通信処理をすると警告対象とかは知っていますが、
本件も問題なんでしょうか?


Hirokazu Fukami

unread,
Jul 23, 2014, 9:29:13 PM7/23/14
to android-g...@googlegroups.com
こんにちはfkmです。

StrictModeでは、ディスクI/Oも警告対象なので、DBアクセスをUIスレッドから行うと
警告が出ると思われます。

2014-07-24 9:33 GMT+09:00 '三宅義之' via 日本Androidの会
<android-g...@googlegroups.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

三宅義之

unread,
Jul 28, 2014, 12:36:54 AM7/28/14
to android-g...@googlegroups.com
To:fkm様

いつもお世話になっております。

返信遅くなり申し訳ございません。
下記、理解しました。
有難うございます。

今、凄く悩んでるというか凄く揉めているのですが、
アプリの起動で下記処理を行っています。

※前提条件で必要情報が取得でき、然るべき設定が出来なければ起動とはしない。
①画面の生成
②イーサーネット経由で必要情報を取得

②のところでUIスレッドで処理するか、別スレッドで処理するかで揉めています。

当然、Androidの規定に沿えばイーサーネット通信処理は別スレッドで行うべきなのですが、
別スレッドで非同期にした場合とUIスレッドで応答を待ち処理するとを比べた場合、UIスレッドで直呼びした方が
起動が早く、現状としてはUIスレッドから直呼びしています。
※勿論、ANRの恐れがありますので通信部分にタイムアウト値を設定し、通信待ちでANRが起きないように対応しています。

しかしながらAndroidの規定に沿うべきとの声も強く、また、とにかく早く起動するべきとの声も強く。。。。
こういった場合、どのように思考すべきでしょうか?

>メーリングリストの皆様
本来ならば、このような相談はこのメーリングリストではふさわしくないかもしれません。
そうでありましたら、誠に申し訳ございません。


2014年7月24日木曜日 10時29分13秒 UTC+9 fkm:
こんにちはfkmです。

StrictModeでは、ディスクI/Oも警告対象なので、DBアクセスをUIスレッドから行うと
警告が出ると思われます。

2014-07-24 9:33 GMT+09:00 '三宅義之' via 日本Androidの会
<android-g...@googlegroups.com>:
> いつもお世話になっております。
>
> dbとStrictModeについてご教授頂きたく存じます。
> 現在、アプリのUIスレッドかコンテンツプロバイダー経由でdbアクセスを行っておりますが、
> StrictModeDiskWriteViolation、StrictModeDiskReadViolationという警告がでます。
>
> StrictModeでUIスレッドから通信処理をすると警告対象とかは知っていますが、
> 本件も問題なんでしょうか?
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-japan+unsub...@googlegroups.com にメールを送信してください。

Hirokazu Fukami

unread,
Jul 28, 2014, 12:42:28 AM7/28/14
to android-g...@googlegroups.com
こんにちはfkmです。

Android 4.0以降だとUIスレッドでHTTPリクエストを投げた時点で
NetworkOnMainThreadExceptionが投げられるので、
UIスレッドで処理する という選択肢自体がありえないと思うのですが。。。
>> > android-group-j...@googlegroups.com にメールを送信してください。
>> > このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
>> > その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
>>
>>
>>
>> --
>> -------------------------------------------------------------
>> 深見 浩和(Hirokazu Fukami)
>>
>> URI:http://www.fkmsoft.jp
>> email: f...@fkmsoft.jp
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
> android-group-j...@googlegroups.com にメールを送信してください。
Reply all
Reply to author
Forward
0 new messages