Kanzi 4.1.2 マイグレーションガイド

このマイグレーションガイドを使用して、Kanzi アプリケーションを Kanzi 4.1.1 から Kanzi 4.1.2 に更新してください。

プロパティストレージのイテレーターを使用してプロパティストレージの順序を変更しないでください

PropertyObject::beginPropertyStorage と PropertyObject::endPropertyStorage が返すイテレーターを使用して、プロパティストレージを置き換えたり、入れ替えたり、順序を変更したりしないでください。PropertyObject は、各ストレージを読み取らずにストレージを見つけられるように、ストレージのプロパティタイプ記述子を同じ順序で別の配列に保持するようになりました。このような変更を行うと、プロパティの検索で別のプロパティのストレージが返される可能性があり、未定義の動作が発生します。

配列が分離されたことにより、PropertyObject およびそれを継承するすべてのクラスのサイズも変わります。Kanzi Engine のプラグインとアプリケーションを Kanzi 4.1.2 に対して再ビルドしてください。

クライアントビューは、ウィンドウにアタッチされている間だけ Kanzi Android Service に接続します

KanziServiceSurfaceView、KanziServiceTextureView、または KanziServiceComposable クライアントビューは、ウィンドウにアタッチされたときに Kanzi Android Service に接続し、デタッチされたときに切断するようになりました。たとえば、クライアントビューをウィンドウから削除したとき、そのフラグメントを入れ替えたとき、ViewPager、RecyclerView、または LazyColumn の外にスクロールしたとき、またはそのコンポーザブルから別の画面に移動したときに、クライアントビューはデタッチされます。

  • コードで作成したクライアントビューは、KanziServiceSurfaceView.connect または KanziServiceTextureView.connect を呼び出したときではなく、ウィンドウにアタッチされたときに接続します。ウィンドウにアタッチされていないビューで connect を呼び出した場合、onServiceConnected はビューがアタッチされた後に初めて発生します。

  • クライアントは、クライアントビューがデタッチされている間に行った pushDataInt などの呼び出しを破棄します。以前は、これらの呼び出しは Kanzi Android Service ホストに届いていました。Kanzi Android Service ホストは、クライアントビューがデタッチされる前にプッシュしたデータを保持します。KanziServiceClientListener.onServiceConnected で、クライアントビューがデタッチされている間に変更されたデータをプッシュしてください。

  • onServiceConnected は、クライアントビューがウィンドウにアタッチされるたびに再度発生します。

  • 同じクライアントビューに対して KanziServiceSurfaceView.connect および KanziServiceTextureView.connect を再度呼び出すと、AssertionError ではなく IllegalStateException がスローされます。serviceHostPackage アトリビュートを指定して XML からインフレートしたクライアントビューは、すでに connect を呼び出しています。

クライアントビューのライフサイクル を参照してください。