私はAndroidNotification用のカスタムRemoteViewを使用しています。私はシステムの動作を模倣したいと思います。Android通知の時刻形式はどのように更新されていますか?
Androidはどのように通知時間形式を更新しますか?設定後は変更されますか?どのように私はこの行動を模倣することができますか?
私はAndroidNotification用のカスタムRemoteViewを使用しています。私はシステムの動作を模倣したいと思います。Android通知の時刻形式はどのように更新されていますか?
Androidはどのように通知時間形式を更新しますか?設定後は変更されますか?どのように私はこの行動を模倣することができますか?
自分で回答しても、まだ回答を探しているかどうかはわかりません。時間の変更(それだけの方法簡単です)
、いくつかのコードこのようなビット:
class MyCleverThing extends Service (say) {
// Your stuff here
private static IntentFilter timeChangeIntentFilter;
static {
timeChangeIntentFilter = new IntentFilter();
timeChangeIntentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
timeChangeIntentFilter.addAction(Intent.ACTION_TIME_CHANGED);
}
// Somewhere in onCreate or equivalent to set up the receiver
registerReceiver(timeChangedReceiver, timeChangeIntentFilter);
// The actual receiver
private final BroadcastReceiver timeChangedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(Intent.ACTION_TIME_CHANGED) ||
action.equals(Intent.ACTION_TIMEZONE_CHANGED))
{
updateWidgets(); // Your code to rebuild the remoteViews or whatever
}
}
};
少し複雑ですが、正当な解決策です。 –
それは、それをやるのがより複雑でない(それが一貫して働くなど)なら、私はそれを見たいと思う。ダニと賞金のおかげで、ありがとう。 –
私は通知時間の形式についてよく分かりませんが、その動作を模倣したい場合は、DateUtils
クラス、特にformatSameDayTimeを見てください。
.notifyが同じIDで再度呼び出されない限り、追加後に通知を更新することはできません。
タイムスタンプを扱う場合は、RemoteViewを使用せずにネイティブNotification NotificationCompat.Builderを使用することをお勧めします。
あなたは、あなたの通知を更新し、このような単純なもの(24時間制)を行うたびに...
public void updateNotifTime(RemoteViews customNotifView){
Date currentTime = new Date();
int mins = currentTime.getMinutes();
String minString = "";
if(mins<10){
minString = "0";
}
minString += mins;
customNotifView.setTextViewText(R.id.time, currentTime.getHours()+":"+minString);
}
通知は、ネイティブのものと同じように、経過時間に基づいてそれ自身で更新することを希望します。 –
I私の質問に私の答えがあった。しかし、それは私の問題を解決しません。 私は、(setContentを使って)カスタムビューを持つRemoteViewを持っています。ネイティブAndroidの動作を模倣して、通知に日付または時刻を表示したい。 API呼び出し(DateUtils.formatSameDayTime)を使用してこれを実現します。問題は、oncesetTextViewTextはRemoteViewで作成され、notificationManager.notifyが呼び出されます。つまり、テキストは永続的です。 渡された時間に基づいて日付または時刻を動的に変更したい(24時間以上は日付が表示されます)。助けてください。 –