問題というほどでもなかった。Androidのライブ壁紙作成のお話。
ライブ壁紙をステップ実行してデバッグするためにwaitForDebuggerを書いたのはいいのだけど、それを忘れてデバッグ用じゃない端末にインストールすると、一向にライブ壁紙を選択した後の「ライブ壁紙を読み込み中…」から進まない。
開発用端末でUSBケーブルを繋いでいると先に進めてしまうので、isDebuggerConnectedメソッドで分岐するようにしました。
public class MyWallpaperService extends WallpaperService { private final Handler handler = new Handler(); @Override public Engine onCreateEngine() { if (android.os.Debug.isDebuggerConnected() // ここでデバッガが繋がっているか判定 && MyApplication.isDebuggable()) { // こっちはmanifestのdebuggableを読む実装 android.os.Debug.waitForDebugger(); // デバッガ待機 } return new MyEngine(); } // do something ... }