![]() 分類: 技術的な話 日付: 2021年07月10日公開 Android で targetSdkVersion 30 への対応が新規アプリ公開時にもうすぐ必須になります。 この対応があるために Android 11 の実機端末が欲しかった(Vastking Kingpad Z10 というタブレットのレビュー)のですが、思ったより deprecated が出ました。 ほとんどはネットで情報が得られたのですが、Handler() is deprecated への対応が自分の場合は以下のように public class TickHandler extends Handler { : : } のような感じで継承して用いており、ネットで見つかる解決法の new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { : : } みたいな書き方をしていませんでした。この deprecated は引数なしのコンストラクタが駄目ということなので、 public class TickHandler extends Handler { // 追加 TickHandler(Looper lp) { super(lp); } : : } とし、 private TickHandler tickHandler = new TickHandler(Looper.getMainLooper()); と宣言することで大丈夫でした。java の super() で継承元のコンストラクタに引き継げるのとかしばらく気にしたことがなく忘れていて、少し文法を調べてわかりました。 普通に new Handler で書くのが素直かもしれませんが、これまでずっと元の書き方で動作実績もあったので、そのままの書き方でいきたいと思いました。 一応、これで Android 5 までの機種で正常動作を確認済みです。 ところで、targetSdkVersion 30 では他にもいろいろ画面の大きさ取得、ステータスバーやナビゲーションバー周りで少し仕様が変わっており、噂によると 31 でもまた変わるとか言われているので、基本警告を消すようにしてだけ対応しました。 そこまで真面目にバージョン毎に deprecated 対応するのも大変です。 しかし、なんでこんなに仕様を変えるのかわかりません。本当に変える必要があるのでしょうか? アプリゲーム紹介 Mocoゲーム作成で比較的人気の無料ゲーム がちんこ魔球競争 を公開中です。Google Play 及び App Store でダウンロード可能です。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー![]()
⇒ より以前のブログ コンテンツ分類 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() カレンダー ![]() 2025年03月 ⇒ ブログカレンダー |