दिलचस्प पोस्ट
जेक्वियो अजाक्स पोस्टिंग जेसन से वेबसाइरी नतीजतन फैक्ट्री पद्धति से परिणाम कैशिंग अगर यह फेंक नहीं करता है अपवाद कोड "EXC_I386_GPFLT" का क्या अर्थ है? क्या आईएनटी और वीएआरएआरएआर प्राथमिक कुंजी के बीच एक वास्तविक प्रदर्शन अंतर है? कई तत्वों के लिए jQuery के समान क्लिक ईवेंट नाम के जावास्क्रिप्ट चर के एक्सेस का मान? रूबी मणि mysql2 स्थापना विफल क्यों numpy.array इतना धीमा है? ब्राउज़र की मुख्य स्क्रॉलबार के साथ विशेष डीआईवी सामग्री स्क्रॉल करें डेटाबेस के संदर्भ में, "सही के लिए सामान्यीकृत, निष्पादन के लिए मानदंड" सही मंत्र है? मैं कैसे जान सकता हूँ कि कोई प्रक्रिया चल रही है? जावा रेगेक्स ईमेल वैकल्पिक वैरिएबल को प्रिंट करना कैसे स्विफ्ट में ViewController खारिज करने के लिए? जब कोई टैब क्रोम में निष्क्रिय होता है तो मैं सेट इन्टरवॉल भी कैसे काम कर सकता हूं?

एंड्रॉइड में किसी सेवा से सूचना भेजना

मेरे पास एक सेवा चल रही है, और एक सूचना भेजना चाहूंगा बहुत बुरा है, सूचना ऑब्जेक्ट को एक गतिविधि की आवश्यकता है, एक गतिविधि की तरह, और कोई सेवा नहीं।

क्या आप पास से किसी भी तरह से जानते हैं? मैंने हर अधिसूचना बू के लिए एक गतिविधि बनाने की कोशिश की, यह बदसूरत लग रहा है, और मुझे बिना किसी दृश्य के गतिविधि को लॉन्च करने का कोई तरीका नहीं मिल सकता है।

Solutions Collecting From Web of "एंड्रॉइड में किसी सेवा से सूचना भेजना"

दोनों Activity और Service वास्तव में Context extend ताकि आप इसे अपने Service भीतर अपने Context रूप में उपयोग कर सकें।

 NotificationManager notificationManager = (NotificationManager) getSystemService(Service.NOTIFICATION_SERVICE); Notification notification = new Notification(/* your notification */); PendingIntent pendingIntent = /* your intent */; notification.setLatestEventInfo(this, /* your content */, pendingIntent); notificationManager.notify(/* id */, notification); 

इस तरह की अधिसूचना को दस्तावेजों से देखा गया है:

 @java.lang.Deprecated public Notification(int icon, java.lang.CharSequence tickerText, long when) { /* compiled code */ } public Notification(android.os.Parcel parcel) { /* compiled code */ } @java.lang.Deprecated public void setLatestEventInfo(android.content.Context context, java.lang.CharSequence contentTitle, java.lang.CharSequence contentText, android.app.PendingIntent contentIntent) { /* compiled code */ } 

बेहतर तरीका
आप इस तरह एक सूचना भेज सकते हैं:

 // prepare intent which is triggered if the // notification is selected Intent intent = new Intent(this, NotificationReceiver.class); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); // build notification // the addAction re-use the same intent to keep the example short Notification n = new Notification.Builder(this) .setContentTitle("New mail from " + "test@gmail.com") .setContentText("Subject") .setSmallIcon(R.drawable.icon) .setContentIntent(pIntent) .setAutoCancel(true) .addAction(R.drawable.icon, "Call", pIntent) .addAction(R.drawable.icon, "More", pIntent) .addAction(R.drawable.icon, "And more", pIntent).build(); NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(0, n); 

सबसे अच्छा तरीका
ऊपर कोड न्यूनतम एपीआई स्तर 11 (एंड्रॉइड 3.0) की आवश्यकता है
यदि आपका न्यूनतम एपीआई स्तर 11 से कम है, तो आपको इस तरह की सहायता पुस्तकालय की अधिसूचना कमपेट क्लास का उपयोग करना चाहिए।

इसलिए यदि आपका न्यूनतम लक्ष्य API स्तर 4+ (एंड्रॉइड 1.6+) है, तो इसका उपयोग करें:

  import android.support.v4.app.NotificationCompat; ------------- NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.mylogo) .setContentTitle("My Notification Title") .setContentText("Something interesting happened"); int NOTIFICATION_ID = 12345; Intent targetIntent = new Intent(this, MyFavoriteActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, targetIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); NotificationManager nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nManager.notify(NOTIFICATION_ID, builder.build()); 
 @TargetApi(Build.VERSION_CODES.JELLY_BEAN) public void PushNotification() { NotificationManager nm = (NotificationManager)context.getSystemService(NOTIFICATION_SERVICE); Notification.Builder builder = new Notification.Builder(context); Intent notificationIntent = new Intent(context, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(context,0,notificationIntent,0); //set builder.setContentIntent(contentIntent); builder.setSmallIcon(R.drawable.cal_icon); builder.setContentText("Contents"); builder.setContentTitle("title"); builder.setAutoCancel(true); builder.setDefaults(Notification.DEFAULT_ALL); Notification notification = builder.build(); nm.notify((int)System.currentTimeMillis(),notification); } 

ठीक है, मुझे यकीन नहीं है कि मेरा समाधान सबसे अच्छा अभ्यास है। NotificationBuilder का उपयोग करना मेरा कोड इस तरह दिखता है:

 private void showNotification() { Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity( this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(NOTIFICATION_ID, builder.build()); } 

मैनिफ़ेस्ट:

  <activity android:name=".MainActivity" android:launchMode="singleInstance" </activity> 

और यहां सेवा:

  <service android:name=".services.ProtectionService" android:launchMode="singleTask"> </service> 

मुझे नहीं पता कि क्या वास्तव में Service पर एक singleTask लेकिन यह मेरे आवेदन पर ठीक से काम करता है …

यदि इनमें से कोई भी काम नहीं है, तो getBaseContext() प्रयास करें, context बजाय या