Monthly Archives: 10月 2011

Honeycombのandroid.widget.Scroller

Scrollerを使ってflingを実装する場合、Pre Honeycombでは指定されたVelocityでスクロールした後min/maxで設定した境界面にぶち当たってピタッと止まる。
Honeycombではmin/maxの境界面が近すぎる場合、衝突までの時間で減速して止まるよう勝手に逆算してVelocityを改変してしまう(ようだ、ソースが公開されていないから挙動からしか推測できないが)
このため、Pre Honeycombではスイッピタッと止まるところで、Honeycombではいきなり重油の海を泳いでるみたいに減速して全てが軟着陸になってしまう。
ださい。

(メモ)NotificationのPendingIntentをFLAG_ACTIVITY_SINGLE_TOPで投げる時の挙動

NotificationにPendingIntentを投げる時、

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

のようにフラグを付けることで既存のActivityに対してIntentを投げることが出来る。
受け取り側のActivityは(onCreateではなく)

protected void onNewIntent(Intent intent)

を適切にオーバーライドしてIntentを受け取る。
1つのアプリが複数の種類のIntentを持つ場合、notifyの第一引数(int id)によって区別される。
PendingIntentを更新したい時はPendingIntent.getActivityの第4引数(int flags)にPendingIntent.FLAG_UPDATE_CURRENTを設定すると同じidの通知を上書き出来る。

Read more …