2017-02-01 17 views
8

मैं एंड्रॉइड डेवलपर नहीं हूं, लेकिन मुझे ऐप बनाने की ज़रूरत है, इसलिए मुझे कुछ HTML/जावास्क्रिप्ट/सीएसएस पता है, मैंने फोनगैप (कॉर्डोवा) का उपयोग करने का निर्णय लिया है)। मैं डाउनलोड मैनेजर नामक एक प्लगइन का उपयोग करता हूं (github) जो फ़ाइलों को डाउनलोड करता है और प्रगति अधिसूचना प्रदर्शित करता है। सबकुछ काम करता है, लेकिन जब मैं अधिसूचना पर क्लिक करता हूं, तो मैं अपने ऐप की मुख्य गतिविधि पर वापस लाने के लिए चाहता हूं, लेकिन ऐसा नहीं होता है।कॉर्डोवा प्लगइन (जावा) अधिसूचना ऐप पर नहीं जाती है - एंड्रॉइड

This फ़ाइल डाउनलोड और अधिसूचना के लिए जिम्मेदार है, शामिल कोड के नीचे है:

intent = new Intent(); 
intent.putExtra("cancel_download", 1); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
pend = PendingIntent.getActivity(cordova.getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

mNotifyManager = (NotificationManager) cordova.getActivity().getSystemService(Activity.NOTIFICATION_SERVICE); 
mBuilder = new NotificationCompat.Builder(cordova.getActivity()) 
    .setSmallIcon(android.R.drawable.stat_sys_download) 
    .setContentTitle(notificationTitle) 
    /*.setSubText("Tap to CANCEL")*/ 
    .setTicker(ticker) 
    .setContentIntent(pend) 
    .setContentText("0% - " + fileName); 

mNotificationId = new Random().nextInt(10000); 
... 

... 
//While(downloading) 
if(useNotificationBar) { 
    mBuilder.setProgress(100, newProgress, false); 
    mBuilder.setContentText(step + "% - " + fileName); 
    mBuilder.setContentIntent(pend); 
    mNotifyManager.notify(mNotificationId, mBuilder.build()); 
} 

मैं यह काम जब मैं क्लिक अधिसूचना कुछ नहीं होता नहीं कर सकता। क्या गलत है? त्रुटिपूर्ण अंग्रेजी के लिए माफ करें।

उत्तर

4

बदलें

pend = PendingIntent.getActivity(cordova.getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

को
pend = PendingIntent.getActivity(cordova.getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT); 

आशा इस काम करता है।

0

इस प्रयास करें:

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
         | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

       PendingIntent intent = PendingIntent.getActivity(context, 0, 
         notificationIntent, 0); 

अपने चर के साथ यह स्थानापन्न है। उम्मीद है कि यह

0

लाइब्रेरी लेखक की तरह लगता है कि डाउनलोड रद्द करने के लिए अधिसूचना पर क्लिक करना है। वैसे भी, लंबित इंटेन्टेंट के साथ लपेटा गया मूल उद्देश्य शुरू करने के लिए एक गतिविधि निर्दिष्ट नहीं करता है।

आप बदलना चाहिए:

intent = new Intent(); 
intent.putExtra("cancel_download", 1); 
intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); 

रहे हैं:

intent = new Intent(); 
intent.setComponent(cordova.getActivity.getComponentName()); 
intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); 
संबंधित मुद्दे