我想要一個方法來執行,當我按下我的通知按鈕。爲此目的,我加入了PendingIntent
的行動,我的通知:而不是pendingIntent,執行Notification.addAction()中的函數。可能嗎?
Intent intent = new Intent(context, AlertActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
Notification notification = new Notification.Builder(MainActivity.this)
.setContentTitle("New Notification")
.setContentText("Click Here")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pendingIntent)
.addAction(R.mipmap.ic_launcher, "Test2", pendingIntent)
.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.notify(0, notification);
這一工程,但我不希望當用戶調用的動作開始的Activity
。我只需要做一些工作。
出於這個目的,我實現了一個Service
應該由PendingIntent
,而不是有針對性:
public class MyServices extends IntentService {
public MyServices() {
super("MyServices");
}
@Override
protected void onHandleIntent(Intent intent) {
clearNotification();
}
public void clearNotification() {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.cancel(0);
Intent intent = new Intent(MyServices.this, MainActivity.class);
//Starting new activity just to check
startActivity(intent);
}
}
我創建PendingIntent
這樣的:
final Intent intent = new Intent(context, MyServices.class);
final PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
然而,當我調用我的通知行動什麼都沒發生。我究竟做錯了什麼?
不,這是不可能的。 PendingIntent有什麼問題?只要使用它。 –
你知道你可以用PendingIntent啓動其他組件 - 不僅僅是活動 - 有一個'PendingIntent',對吧?只需使用「服務」。 –
我想要執行某些代碼而不實際啓動任何活動(或向用戶顯示任何內容)。 贊,假設通知說; 「在下雨嗎?」 動作按鈕1:是 動作按鈕2:否 點擊是時,引導用戶進行一些活動。 **單擊否時,清除通知並執行一小段代碼** –