1

メッセージまたは通知をカスタム時間(この場合は2秒未満)表示したいのですが。

私は2つのアプローチを試しましたが、どちらも実際には役に立ちませんでした。1. Toastを介してメッセージを表示し、を介して期間を設定します。LENGTH_SHORTこれは、ハードコードされた2秒の期間を定義しているようです。->失敗2.ルーチンをNotificationCompat.Builder使用してを作成しSetTicker、一定時間後に通知をキャンセルします。->通知(私は本当に必要ありません)は一定時間後に消えますが、残念ながらティッカーはより長い期間留まります。:(

private void SetNotification(CharSequence aCharSeq)
{
  Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
  PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),
    m_RandNotificationID, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

  NotificationCompat.Builder builder = new    NotificationCompat.Builder(this).setTicker(aCharSeq)
    .setContentTitle(aCharSeq).setContentText(aCharSeq).setSmallIcon(R.drawable.sound)
    .setContentIntent(contentIntent);

  Notification noti = builder.build();

  m_NotMan.notify(m_RandNotificationID, noti);

  new Timer().schedule(CancelAction, 1000L);
}

TimerTask CancelAction = new TimerTask()
{
   public void run()
   {
     m_NotMan.cancel(m_RandNotificationID);
   }
};

あなたからのどんなアイデアも役に立ちます。:)

明けましておめでとう

クリス

4

1 に答える 1

3

すでに述べたように、 a の期間はおよびToastにのみ設定できます。ただし、.Toast.LENGTH_SHORTToast.LENGTH_LONGToastHandler

final Toast toast = Toast.makeText(this, "Example Toast",
        Toast.LENGTH_SHORT);
toast.show();

new Handler().postDelayed(new Runnable() {

    @Override
    public void run() {
        toast.cancel();
    }
}, 1000);
于 2013-01-01T14:14:40.983 に答える