2016-11-07 37 views
0

我正在嘗試製作一個簡單的秒錶應用程序,該應用程序將在通知中顯示時間,併爲您提供一些可讓您啓動和停止秒錶的按鈕。如何在通知中做按鈕'做點什麼'

如何將按鈕添加到通知?我該如何將該按鈕指向某個功能?

下面有什麼,我在想一個畫面: http://image.prntscr.com/image/a4113f39cbaf46c597dc32f07bcc531c.png

actionIntent = new Intent(this, MainActivity.class); 
    actionPendingIntent = PendingIntent.getService(this, 0, actionIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    timerNotification.addAction(android.R.drawable.ic_media_pause, "Start", actionPendingIntent); 

這是我現在有。在意圖的地方,我會把我想要執行的功能放在哪裏?

回答

0

添加操作的通知,並分配一個pendingintent

+0

我已更新我的問題。我在哪裏等待意向函數? –

0

如果您想自定義您的通知佈局,可以使用setContent()函數與您的自定義佈局的RemoteViews。

Remote View mRemoteView = new RemoteViews(getPackageName(), R.layout.notification_general); 
Notification.Builder mBuilder = new Notification.Builder(context); 
mBuilder.setSmallIcon(R.mipmap.ic_battery) 
     .setContent(mRemoteView) 
     .setContentIntent(notificationPendingIntent); 
mNotificationManager.notify(1, mBuilder.build()); 

要處理的通知按鈕onClick事件,你需要使用獨立的PendingIntents(從differecnt行動意圖製造),每個按鈕。稍後在onReceive()中,您只需檢查傳入Intent的操作&根據該操作執行不同的代碼。記得在清單上分配您的偵聽器。

Intent generalIntent = new Intent(context, GeneralReceiver.class); 
generalIntent.putExtra(REQUEST_CODE, ACTION_GENERAL); 
PendingIntent generalPendingIntent = 
     PendingIntent.getBroadcast(context, 1, generalIntent, 0); 
mRemoteView.setOnClickPendingIntent(R.id.btnNotificationGeneral, generalPendingIntent); 
public static class GeneralReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      //Your code here 
     } 
    }