看板 AndroidDev 關於我們 聯絡資訊
package com.myandroid.main; /* import相關class */ import java.util.Calendar; import java.util.StringTokenizer; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.BroadcastReceiver; import android.os.Bundle; import android.util.Log; /* 呼叫鬧鐘Alert的Receiver */ public class CallAlarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { /* create Intent,呼叫AlarmAlert.class */ String tepName = intent.getStringExtra("name"); String date = intent.getStringExtra("date"); String place = intent.getStringExtra("place"); String time = intent.getStringExtra("time"); String sclass = intent.getStringExtra("class"); final int notifyID = 1; // 通知的識別號碼 final int requestCode = notifyID; // PendingIntent的Request Code final Intent intent = getIntent(); // 目前Activity的Intent final int flags = PendingIntent.FLAG_CANCEL_CURRENT; // ONE_SHOT: PendingIntent只使用一次;CANCEL_CURRENT:PendingIntent執行前會先結束掉之前的; NO_CREATE:沿用先前的PendingIntent,不建立新的PendingIntent;UPDATE_CURRENT: 更新先前PendingIntent所帶的額外資料,並繼續沿用 final PendingIntent pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), requestCode, intent, flags); // 取得PendingIntent final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); // 取得系統的通知服務 final Notification notification = new Notification.Builder(context.getApplicationContext()).setSmallIcon(R.drawable.keepcon).setContentTitle(" 內容標題").setContentText(tepName + ", Time: " + date + " " + time + ", class:" + sclass + ", in place: " + place).setContentIntent(pendingIntent).build(); // 建立通知 notificationManager.notify(notifyID, notification); // 發送通知 } } 想要請問一下,這個callalarm.class類別他是要傳送通知的類別,是根據使用者設定的提 醒時間而傳送通知回去的,但是在callalarm.class的類別中 final Intent intent = getIntent(); // 目前Activity的Intent 這段程式碼寫是錯誤 是因為什麼原因呢?還是不能這麼用?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.58.10 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1447597049.A.805.html
ssccg: 這是BroadcastReceiver,不是Activity,沒有getIntent 11/16 14:18
ssccg: 另外onReceive的參數也有一個叫intent,變數名字重複了 11/16 14:22
yaling1219: 意思是不是沒有intent intent=getintent();這段程式碼 11/16 19:57
yaling1219: 的意思? 但是有試著把它隱藏起來 並沒有跑出通知 11/16 19:58
ssccg: 這是個Receiver,所以你有發Broadcast給它嗎? 11/18 14:52
ssccg: 另外onReceive參數的intent是Receiver收到的intent 11/18 14:54
ssccg: final Intent intent = getIntent(); 這行的intent是要帶 11/18 14:54
ssccg: 進PendingIntent,也就是點通知後要執行的intent 11/18 14:55
ssccg: 是不一樣的用途,你先看懂程式碼哪行是在做什麼吧... 11/18 14:55
yaling1219: 好的 感謝你的建議 11/18 22:19