ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

BREW開発者コミュのBREW3.1での質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
現在、BREW3.1で開発を行っています。
BREW2.1のときには問題がなかったのですが、
BREW3.1にてコンパイルしてモジュールを作成。
実際の端末にインストールしてから通信のときにアプリがリセットしてしまうという不具合が発生しています。

上記について同じような現象に悩んでいる方、
もしくは解決策などを知っている方はいらっしゃいますでしょうか?
ちなみに弊社では通信の際にIWEBインターフェイスを使用しています。

宜しくお願いします。

コメント(6)

Σ(ノ゚▽゚)ノまぢっすか!
BREW3.1端末といえば
今対応してるのってW31Tのみっすよね〜(=~~=*)むむぅ

あっぜんぜん解決に
なってなくてすいません…
かなり驚いたもんで…
なんとなくですが・・・。
IWEB_GetResponse()で指定しているコールバック関数の中から
さらにIWEBインターフェイスを作成して通信を開始するのがダメなのかな?

実機だと問題無いのにエミュレーターだとダメみたいですねぇ。
2.1のエミュレータでは問題無く動作してたんだけど・・・。
> #2 ノビタ さんへ

端末リセットに関わりなく IWeb インスタンスを複数作成するのはあまりよくないと私も思います。API リファレンスに想定された使用手順が記されているのでなるべく従ったほうがいいです。

> IWeb インタフェースポインタは、
> アプリケーションの起動時に作成され、初期化されて、
> アプリケーションが終了するまで使用されるように
> 設計されています。
「BREW(R) 3.1.2 API リファレンス」より
> IWeb インタフェースポインタは、
> アプリケーションの起動時に作成され、初期化されて、
> アプリケーションが終了するまで使用されるように
> 設計されています。

この終了するまでって下りがインターフェイスをリリースすると理解しています。
仮に連続で通信を行いたい場合ですが、
現在は下記のような実装をしています。

IWEB_GetResponse()で指定したコールバック関数に処理が呼ばれて
その中で通信が正しく終わった場合に
インターフェイスを開放して、
インターフェイスの作成とIWEB_GetResponse をコールしています。


タイマーとかを利用して一度、コールバック関数から抜けて
その後に行うべきなのかもしれません。
いくつかBREWをインストールしているので
ヘッダの参照が古いSDKになっているのかもしれません、
再度、設定等を確認してみたいと思います。
#4: ノビタ さんへ

> この終了するまでって下りがインターフェイスをリリースすると理解しています。

それがリリースされないんです。IWebResp だけをリリースすれば IWeb は何度でも使えます。
もう一つ。ISource が空になるまで読み込みを繰り返したかどうかが気になります。ISource にデータが残っている段階で IWebResp をリリースすると再起動する端末がありました。

IWEB_GetResponse() のコールバック関数は、コンテンツを全て取得したと言うより、コンテンツの先頭部分を取得し始めたことを知らせると考えた方がいいです。 ISOURCE_Read() の戻り値でデータが無くなったことを確認できない場合にコールバックを設定して何度か ISOURCE_Read() を繰り返すことでコンテンツを全て取得できるものです。

[追伸]
ISource が空になったとは ISOURCE_Read() が ISOURCE_END か ISOURCE_ERROR を返したときだけです。読み込んだバイト数を返した場合は、現在はバッファにこれだけあるがまだ続きがあるという意味です。API リファレンスの ISOURCE_Read() と ISOURCE_Readable() の説明を参照願います。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

BREW開発者 更新情報

BREW開発者のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング