問題というほどでもなかった。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 ...
}

HOMMA Teppei

