I hope that receiving a push-notification (c2dm) reception display
Notification. This Notification start, whith PendingIntent, an
Activity that display a pop-up. This popup launch my application when
clicking on the "ok" button.

Here is the code executed at the reception of push-notification :


private void dealMessage(Context context, Intent intent)
{
    try
    {
        String message = intent.getExtras().getString("message");

        Log.v("testc2dm","message :     [" + message + "]");

        //create bean of my Notification
        NotificationPush notif = new NotificationPush();
        notif.init((JSONObject)JSONValue.parse(message));

        //create PendingIntent
        Intent intentDialog = new Intent(context,
DialogActivity.class);
        intentDialog.putExtra("notif", notif);
        int requestCode= (int) System.currentTimeMillis();
        PendingIntent pi = PendingIntent.getActivity(context,
requestCode, intentDialog, PendingIntent.FLAG_ONE_SHOT);

        //Create the Notification
        Notification n = new Notification();
        n.flags |= Notification.FLAG_SHOW_LIGHTS; // allume l'écran
        n.flags |= Notification.FLAG_AUTO_CANCEL; // fait disparaitre
automatiquemet la notif apres un clic dessus
        n.defaults = Notification.DEFAULT_ALL;
        n.icon = R.drawable.icon;
        n.when = System.currentTimeMillis();
        n.setLatestEventInfo(context, "Mon titre", notif.getTitre(),
pi);

        //add my Notification
        NotificationManager notificationManager =
(NotificationManager)context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(ID_NOTIFICATION, n);
    }
    catch(Exception e)
    {
        Log.e("testc2dm","error :       [" + e.getMessage() + "]");
        e.printStackTrace();
    }
}


this is my activity that displays popup and start my application :


protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    Log.v("testc2dm","DialogActivity oncreate()");

    //recovery of my bean Notification
    Intent intentParam = getIntent();
    NotificationPush notif =
(NotificationPush)intentParam.getSerializableExtra("notif");

    if(notif != null)
    {
        Log.v("testc2dm","notif => titre [" + notif.getTitre() + "] --
msg [" + notif.getMessage() + "] -- type [" + notif.getType() + "]");

        //display popup
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage(notif.getMessage());
        builder.setTitle(notif.getTitre());
        builder.setCancelable(false);
        builder.setNegativeButton("Ok", new
DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                if(!TestC2DMActivity.appIsRunning)
                {
                    //launch first Activity of my application
                    Intent intent = new Intent(DialogActivity.this,
TestC2DMActivity.class);
                    startActivity(intent);
                }
            }
        });
        builder.show();
    }
}


My problem is : if my application will be started by receiving a push
(c2dm > Notification > PendingIntent > DialogActivity >
TestC2DMActivity) then receive the next push, the Notification will
appear fine, but clicking on the Notification will not launch
DialogActivity. Whereas when the application is started normally (icon
of the app) then everything works fine.

I feel that if my application is started by my PendingIntent, then
this PendingIntent no longer want launch DialogActivity .. Why??

really thanks for your help and sorry for my bad english..

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to