drunken_guy Δημοσ. 11 Νοεμβρίου 2012 Δημοσ. 11 Νοεμβρίου 2012 Έχω το εξής πρόβλημα. Η εφαρμογή μου υποτίθεται πως ειδοποιεί τον χρήστη σε περίπτωση που μπει σε ένα κατάστημα, για κάποιες μάρκες οι οποίες τον ενδιαφέρουν και έχουν προσφορές. Το θέμα μου είναι πως ο χρήστης θα ειδοποιείται από notifications στην οθόνη του κινητού του. Το notification θα είναι συνδεδεμένο με την κλάση ShowAdvert που έχω φτιάξει, η οποία παίρνει το link μιας εικόνας και εμφανίζει την εικόνα στον χρήστη. Το πρόβλημά μου είναι ότι ενώ λειτουργεί ομαλά για ένα notification σε περίπτωση που εμφανιστούν περισσότερα από ένα notification, ενώ το κείμενο του notification είναι σωστό, αν κλικαρεις πάνω σε αυτό σε βγάζει συνέχεια στην ίδια εικόνα και όχι διαφορετική όπως θα έπρεπε. Παραθέτω κώδικα μπας και έχετε καμια ιδέα: > public void startPic(String shopName,ArrayList<Integer> itemsSold) { NotificationManager nf=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); //Notification notification = new Notification(R.drawable.noticon,"You have entered a shop!",System.currentTimeMillis()); //to hide notification //notification.flags|=Notification.FLAG_AUTO_CANCEL; int notificationId=0; for(int itemid:itemsSold) { Notification notification = new Notification(R.drawable.noticon,"You have entered a shop!",System.currentTimeMillis()); //to hide notification notification.flags|=Notification.FLAG_AUTO_CANCEL; String itemName=""+itemid; String result = null; InputStream is = null; StringBuilder sb=null; String advertLink=""; ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("itemid",itemName)); try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://10.0.2.2/getItemStats.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception ex){ Log.e("log_tag", "Error in http connection"+ex.toString()); } try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); sb = new StringBuilder(); sb.append(reader.readLine() + "\n"); String line="0"; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); } JSONArray jArray; try{ jArray = new JSONArray(result); JSONObject json_data=null; for(int i=0;i<jArray.length();i++){ json_data = jArray.getJSONObject(i); itemName=json_data.getString("itemname"); advertLink=json_data.getString("advert"); } } catch(JSONException e1){ System.out.println("E1: "+ result + " "+e1.getMessage()); e1.toString(); } catch (ParseException e2) { e2.printStackTrace(); System.out.println("E2: "+ result + " "+e2.getMessage()); } System.out.println("EDW ID: "+itemid+" EDW LINK "+advertLink); Intent intent=new Intent(this,ShowAdvert.class); intent.putExtra("link", advertLink); PendingIntent activity=PendingIntent.getActivity(this, 0, intent, 0); notification.setLatestEventInfo(this,"You have entered the "+shopName,"Touch to see a special offer in "+itemName,activity); notification.number+=1; nf.notify(notificationId,notification); notificationId++; } Οι τιμές όλων των μεταβλητών μου είναι σωστές (και αυτές που τις παίρνω από την βάση), οπότε πιστεύω πως το προβλημά θα είναι στο πως δουλεύουν ακριβώς τα notifications.
computeras13 Δημοσ. 12 Νοεμβρίου 2012 Δημοσ. 12 Νοεμβρίου 2012 Δοκίμασε να ορίσεις ένα μονοσήμαντο requestCode όταν καλείς την getActivity (το δεύτερο όρισμα της για να μην ψάχνεις) για κάθε νέο notification που θέλεις να εμφανίσεις. Μιλάω για την γραμμή >PendingIntent activity=PendingIntent.getActivity(this, 0, intent, 0); 1
drunken_guy Δημοσ. 12 Νοεμβρίου 2012 Μέλος Δημοσ. 12 Νοεμβρίου 2012 Δοκίμασε να ορίσεις ένα μονοσήμαντο requestCode όταν καλείς την getActivity (το δεύτερο όρισμα της για να μην ψάχνεις) για κάθε νέο notification που θέλεις να εμφανίσεις. Μιλάω για την γραμμή >PendingIntent activity=PendingIntent.getActivity(this, 0, intent, 0); Αυτό μου δούλεψε. Ευχαριστώ πάρα πολύ. Αλλά μπορείς να μου εξηγήσεις τι ακριβώς άλλαξε; Μήπως το id του notification που πρέπει να ανοίξει κάθε φορά; Έχω μπερδευτεί. Ευχαριστώ πάντως!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα