คำถามติดแท็ก android-pendingintent


9
โทรหา startActivity () จากด้านนอกกิจกรรมหรือไม่
ฉันกำลังใช้AlarmManagerเพื่อกระตุ้นความตั้งใจที่ถ่ายทอดสัญญาณ ต่อไปนี้เป็นรหัสของฉัน: AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(this, Wakeup.class); try { PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0); Long elapsed += // sleep time; mgr.set(AlarmManager.RTC_WAKEUP, elapsed, pi); } catch(Exception r) { Log.v(TAG, "RunTimeException: " + r); } ฉันเรียกรหัสนี้จาก an Activityดังนั้นฉันไม่รู้ว่าฉันจะได้รับข้อผิดพลาดต่อไปนี้ ... ERROR/AndroidRuntime(7557): java.lang.RuntimeException: Unable to start …

6
การแจ้งเตือนผ่าน Intent Extras แบบเก่า
ฉันกำลังสร้างการแจ้งเตือนภายใน BroadcastReceiver ผ่านรหัสนี้: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns); int icon = R.drawable.ic_stat_notification; CharSequence tickerText = "New Notification"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); notification.defaults |= Notification.DEFAULT_VIBRATE; long[] vibrate = {0,100,200,200,200,200}; notification.vibrate = vibrate; notification.flags |= Notification.FLAG_AUTO_CANCEL; CharSequence contentTitle = "Title"; CharSequence …

8
เจตนา - ถ้ากิจกรรมกำลังดำเนินอยู่ให้นำมาไว้ข้างหน้ามิฉะนั้นจะเริ่มกิจกรรมใหม่ (จากการแจ้งเตือน)
แอพของฉันมีการแจ้งเตือนซึ่งชัดเจนว่าไม่มีการตั้งค่าสถานะใด ๆ เริ่มต้นกิจกรรมใหม่ทุกครั้งดังนั้นฉันจึงได้รับกิจกรรมเดียวกันหลายรายการที่ทำงานอยู่ด้านบนซึ่งกันและกันซึ่งผิดปกติ สิ่งที่ฉันต้องการให้ทำคือการนำกิจกรรมที่ระบุในการแจ้งเตือนที่ค้างอยู่ไปข้างหน้าถ้ามันกำลังทำงานอยู่หรือไม่ก็เริ่มทำ จนถึงตอนนี้เจตนา / ความตั้งใจที่รอดำเนินการสำหรับการแจ้งเตือนที่ฉันมีอยู่ private static PendingIntent prepareIntent(Context context) { Intent intent = new Intent(context, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); } และแปลกบางครั้งมันใช้งานได้บางครั้งมันไม่ ... ฉันรู้สึกว่าฉันได้ลองทุกชุดผสมกันแล้ว

3
PendingIntent ไม่ส่ง Intent พิเศษ
ฉันMainActicity จะเริ่มต้นRefreshServiceด้วยการIntentที่มีความพิเศษที่เรียกว่าbooleanisNextWeek ของฉันRefreshServiceทำให้Notificationซึ่งเริ่มต้นของฉันMainActivityเมื่อผู้ใช้คลิกที่มัน ลักษณะเช่นนี้: Log.d("Refresh", "RefreshService got: isNextWeek: " + String.valueOf(isNextWeek)); Intent notificationIntent = new Intent(this, MainActivity.class); notificationIntent.putExtra(MainActivity.IS_NEXT_WEEK, isNextWeek); Log.d("Refresh", "RefreshService put in Intent: isNextWeek: " + String.valueOf(notificationIntent.getBooleanExtra(MainActivity.IS_NEXT_WEEK,false))); pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder = new NotificationCompat.Builder(this).setContentTitle("Title").setContentText("ContentText").setSmallIcon(R.drawable.ic_notification).setContentIntent(pendingIntent); notification = builder.build(); // Hide the notification after its selected notification.flags |= …

5
“ requestCode” ใช้สำหรับอะไรใน PendingIntent
พื้นหลัง: ฉันใช้ PendingIntent สำหรับการเตือนผ่าน AlarmManager ปัญหา: ตอนแรกฉันคิดว่าในการยกเลิกอันก่อนหน้านี้ฉันต้องระบุ requestCode ที่แน่นอนที่ฉันเคยใช้มาก่อนเพื่อเริ่มการปลุก แต่แล้วฉันก็พบว่าฉันคิดผิดตามที่API การยกเลิกบอก: ลบสัญญาณเตือนใด ๆ ที่มีเจตนาที่ตรงกัน การเตือนภัยไม่ว่าประเภทใดก็ตามที่มี Intent ตรงกับการเตือนนี้ (ตามที่กำหนดโดย filterEquals (Intent)) จะถูกยกเลิก ดูที่ " filterEquals " เอกสารระบุว่า: ตรวจสอบว่าเจตนาสองอย่างเหมือนกันสำหรับวัตถุประสงค์ของการแก้ไขเจตนา (การกรอง) หรือไม่ นั่นคือถ้าการกระทำข้อมูลประเภทคลาสและหมวดหมู่เหมือนกัน ข้อมูลนี้ไม่ได้เปรียบเทียบข้อมูลเพิ่มเติมใด ๆ ที่รวมอยู่ใน Intent เลยไม่เข้าใจว่า "requestCode" มีไว้เพื่ออะไร ... คำถาม: "requestCode" ใช้ทำอะไร จะเกิดอะไรขึ้นถ้าฉันสร้างการเตือนภัยหลายรายการโดยใช้ "requestCode" เดียวกัน พวกเขาลบล้างกันและกัน?

13
PendingIntent ทำงานได้อย่างถูกต้องสำหรับการแจ้งเตือนครั้งแรก แต่ส่วนที่เหลือไม่ถูกต้อง
protected void displayNotification(String response) { Intent intent = new Intent(context, testActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis()); notification.setLatestEventInfo(context, "Upload", response, pendingIntent); nManager.notify((int)System.currentTimeMillis(), notification); } ฟังก์ชันนี้จะถูกเรียกใช้หลายครั้ง ฉันต้องการให้แต่ละคนnotificationเปิด testActivity เมื่อคลิก น่าเสียดายที่มีเพียงการแจ้งเตือนครั้งแรกเท่านั้นที่เปิดตัว testActivity การคลิกที่ส่วนที่เหลือทำให้หน้าต่างการแจ้งเตือนย่อเล็กสุด ข้อมูลเสริม: ฟังก์ชั่นที่อยู่ในระดับที่เรียกว่า displayNotification() ถูกส่งผ่านเข้ามาจากอินสแตนซ์นั้น ฟังก์ชันถูกเรียกหลายครั้งจากฟังก์ชันเช่นเดียวกับใน UploadManager ที่ทำงานในไฟล์.UploadManagerContextUploadManageractivitydisplayNotification()AsyncTask แก้ไข 1: ฉันลืมที่จะพูดถึงว่าฉันกำลังส่งการตอบกลับของสตริงIntent …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.