有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android中创建计时器?

我有以下方法:

public NotificationCompat.Builder createNotification(Context context) {
    Intent intent = new Intent(this, MapsActivity.class);
    PendingIntent pIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), intent, 0);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    boolean running = true;
    builder = new NotificationCompat.Builder(context)
            .setContentText("conteúdo")
            .setContentTitle("titulo")
            .setSmallIcon(R.drawable.ic_today_black_24dp)
            .setAutoCancel(false)
            .setOnlyAlertOnce(true)
            .setOngoing(running)
            .setContentIntent(
                    PendingIntent.getActivity(context, 10,
                            new Intent(context, MapsActivity.class)
                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP),
                            0)
            )
            .addAction(running ? R.drawable.ic_stop_black_24dp
                            : R.drawable.ic_play_arrow_black_24dp,
                    running ? "Pause"
                            : "play",
                    pIntent)
            .addAction(R.drawable.ic_stop_black_24dp, "Stop",
                    pIntent);

    notificationManager.notify(0, builder.build());

    return builder;
}

其中在状态栏中启动了一个通知,如第一个通知中所示:

enter image description here

要链接通知,请执行以下操作:

NotificationCompat.Builder notification = createNotification(this);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, notification.build());

我想在一个通知中创建一个计时表,与Strava通知(图像的第二个通知)中显示的完全一样,如上所示

如何在通知中创建Chronometer


共 (2) 个答案

  1. # 1 楼答案

    您可以使用内置计时器:

    builder = new NotificationCompat.Builder(context)
    builder.setUsesChronometer(true)
    ...
    builder.build()
    
  2. # 2 楼答案

    因此,如果你知道如何使用Layouts,那么创建应用程序小部件布局很简单。然而,你必须意识到应用程序小部件的布局是基于RemoteViews的,它不支持所有类型的布局或视图小部件。无论如何,如果你需要应用程序小部件布局的支持,这里有一些参考: https://developer.android.com/guide/practices/ui_guidelines/widget_design.html

    幸运的是RemoteViews支持Chronometer,正如您可以从开发者webiste中看到的:https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

    A我想你可以像往常一样访问你的Chronometer,你可以做这样的事情,这取决于你想让它暂停、恢复,或者其他什么:

    remoteView.setChronometer(R.id.myChronometere, SystemClock.elapsedRealtime(),
                          null, false); //pausing