2012-02-17 [長年日記]

_ [Android] AlarmManagerでサービスを一定時間ごとに発生させる

http://developer.android.com/intl/ja/reference/android/app/AlarmManager.htmlから。
setInexactRepeating()を使っていたのが間違いだったのだが。よく見ると名前からして「正確ではない」とある。

15分毎にイベントを起こそうとして、10:48からINTERVAL_FIFTEEN_MINUTESで開始してもなぜか11:00,11:15,11:30と毎正時から刻みで発生する。(しかも1分くらい遅れることもある)よく読むと第3引数の説明がこのようになっていた。

Interval between subsequent repeats of the alarm. If this is one of INTERVAL_FIFTEEN_MINUTES, INTERVAL_HALF_HOUR, INTERVAL_HOUR, INTERVAL_HALF_DAY, or INTERVAL_DAY then the alarm will be phase-aligned with other alarms to reduce the number of wakeups. Otherwise, the alarm will be set as though the application had called setRepeating(int, long, long, PendingIntent).

phase-alignedってそういうことか。

ああっ、AlarmManager#setRepeating()ってのがある。これにはphase-alignedとは書いてない。普通にこれ使えばよかった。Inexactめ。じゃあInexactてなんだ?

うわー、英語難しい。以下、setInexactRepeating()の説明

These alarms are more power-efficient than the strict recurrences supplied by setRepeating(int, long, long, PendingIntent), since the system can adjust alarms' phase to cause them to fire simultaneously, avoiding waking the device from sleep more than necessary.

やっとわかった。なぜphase-alignedにするか。いろんなアラームが毎正時+5分、毎正時+10分とかに発生するとスリープ中の携帯が何度も目覚めるので、回避策として「時刻全部まとめる。勝手な時刻許さん。毎正時、正時から15分ごと、正時から30分ごと、正半日、正日のみじゃああ(キムじゃない)」としたのか。
ああ、時間かかった。

あと、mozcは正時という単語を知らないようなので叩き込んだ。

_ [Android] IntentService書く上での注意

RuntimeExceptionで出るだけでさっぱりわからんかった。

public class PugaService extends IntentService {
// これは自動生成される。
        public PugaService(String name) {
		super(name);
	}
// 実はこれが必要!自動生成されない!死亡!→手で書く
    public PugaService() {  
		super("PugaService");
	}
わからんわー

_ [Android] メモ

1つアプリ出来たのでメモ。
  • アプリの顔とも言えるアイコンはres/drawable*/icon.pngと置く → アイコン作成のガイドライン
  • 手動で入れるのはadb install MYAPP.apk (apkファイル)
  • 手動で消すのはadb uninstall com.foo.bar (Javaのクラス名)
  • マーケットのマイアプリには(当然ながら)出てこない。設定→アプリケーションの管理
署名は以下の通り。
% keytool -genkey -v -keyalg RSA -keystore keyfile -alias myalias -validity 10000
パスワード2つ聞かれるので覚えておく。
eclipseからAndroid Tool → Export Signed Application Packageで、パスワード2つとmyaliasを聞かれる。

検索キーワード:

記事

カテゴリ

Amazon | Android | apache | Arduino | bash | bluetooth | Books | CakePHP | CakePHP3 | CakePHP4 | Chrome | Chromebook | CodeIgniter | CSS | Docker | Eclipse | Emacs | etc | Firefox | Flask | Gadget | git | Gnome | Google | Heroku | HTML | hugo | Internet | iPhone | IS01 | IS03 | Java | JavaScript | json | Kotlin | Laravel | LINE | magento | mysql | nginx | nodejs | Oops | PC | Perl | php | Python | Qt | Ruby | ruby | Shell | ssh | tdiary | twitter | ubuntu | unix | VirtualBox | Web | Windows | windows | WindowsMobile | WX5 | YAML | zsh | ここか | そば | つくる | つり | できごと | アクアリウム | ギター | セキュリティ | プリンタ | ベース | ボクシング | ポエム | マネー | メシ | ラズパイ | 仕事 | 作家 | 壮絶 | 妄想 | 忘れる | 料理 | | 暑い | 痛い | 社会 | 自転車 | | 車輪 | | 野球 | 銭湯 | 音楽 |

全部 : / 今日 :

近頃

  1. bone (02-06)

links

profile

もっとヒゲ伸ばしたい。