2013 07,29 19:42 |
|
Android でandroid.os.NetworkOnMainThreadException が出て起動しないという現象
調べた見たら、 Andorid3.0以降から、メインクラスから、ネットワーク処理を許していないとのこと で、軽く嵌った1段として、「メインクラス」 メインクラスではなくて、本当はメインスレッドからのネットワーク処理を許していないということ サブクラスを作り、そこに処理を書いてもメインスレッドからコールしても意味がない! で、その対応策として、AsyncTask を使用する 非同期でネットワーク処理を行うように、処理を記述 試してみたら、ほんとに非同期・・・UI部分を引っ張ってくるには便利なクラスだと思う だけど、1回目のネットワーク処理の結果を使い、2回目のネットワーク処理をする自分のアプリでは無意味。。。orz だって、非同期なんだもん。。。1回目の結果を待たずに2回目が実行されてしまう そんなわけで、自作のクラスを作り、メインスレッドからサブスレッドを実行。 サブスレッドにはネットワーク処理を行い、それが終わるまでメインは待機という JAVAスレッドの基本で対応 なんだよ、ほんとに。。。Androidはいろいろ嵌る はぁ、めんどくせい こんなもんがほんとに儲かるのか?って、いまだに半信半疑な人なのでした PR |
|
コメント |
コメント投稿 |
|
忍者ブログ [PR] |