-1

I created an android application. In this application I use the push notification concept. The notification is sent and received properly on the receiver.

Now I want to display the notification on status bar only for 20 second after that it will disappear. Can anyone tell me how can I do this? This is what I´ve so far.

public class ViewRecievedJobs extends Activity {

    //private Button accept,reject;
    private SharedPreferences pref;
    private String login_token;
     int status;
    FragmentSendJob fsj;

    ListView list;

    Context con;

    int pos;
    static String job_id;

    DatabaseAdmin  database ;

    ArrayList<HashMap<String, String>> adsArray = new ArrayList<HashMap<String,String>>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.view_received_jobs);

        con=this;

        pref=this.getSharedPreferences("Driver", MODE_WORLD_READABLE);

        login_token = pref.getString("login_token","login_token"); 

        database = new DatabaseAdmin(getApplicationContext());

        //adsArray = database.getRecords_ads("Select * from SUN_NOTI where received =0");

        //  
        //fsj.job_id=id;

        //Log.e("adsArray", ""+adsArray);


        list=(ListView)findViewById(R.id.listView1);




    }




    @Override
    protected void onResume() 
    {
    //  Log.e("onResume", "onResume");
        adsArray.clear();
        adsArray = database.getRecords_ads("Select * from SUN_NOTI where status = 1");
        list.setAdapter(new ReceivedJobList());

        super.onResume();
    }




    class ReceivedJobList extends BaseAdapter
    {

        public int getCount() {
            // TODO Auto-generated method stub
            return adsArray.size();
        }

        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return adsArray.get(arg0);
        }

        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return 0;
        }

        public View getView(final int arg0, View cView, ViewGroup arg2) 
        {

            pos=arg0;
            LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            cView = inflater.inflate(R.layout.job_received, null);

            TextView name = (TextView)cView.findViewById(R.id.esuburb);

            TextView dest = (TextView)cView.findViewById(R.id.edestination);


            name.setText(adsArray.get(arg0).get("suburb"));

            dest.setText(adsArray.get(arg0).get("destination"));

        //  Button view = (Button) cView.findViewById(R.id.view);

            Button accept = (Button) cView.findViewById(R.id.accept);

            Button reject = (Button) cView.findViewById(R.id.reject);

            accept.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v)
                {

                    status=0;   

                    job_id=adsArray.get(arg0).get("message_id");

                    new JobStatus().execute();

                    //  new ViewAdvertisement().execute();
                    //  Toast.makeText(LoginScreen.this, "You clicked the button", Toast.LENGTH_SHORT).show();
                }       
            });

    /*      view.setOnClickListener(new OnClickListener() 
            {
                public void onClick(View v) 
                {

                    Intent i =new Intent(con,Job_Detail.class);
                    i.putExtra("pos", ""+pos);
                    i.putExtra("from", "view");
                    i.putExtra("array",adsArray );
                    startActivity(i);


                }       
            });*/

            reject.setOnClickListener(new OnClickListener() 
            {
                public void onClick(View v) 
                {

                    status=2;       

                    new JobStatus().execute();


                }       
            });


            return cView;
        }

    }


    private class JobStatus extends AsyncTask<String, String, String[]> {

         private ProgressDialog dialog;

           protected void onPreExecute()
           {
                dialog = ProgressDialog.show(ViewRecievedJobs.this, "", "");
                dialog.setContentView(R.layout.main);
                dialog.show();

           }
        @Override
        protected String[] doInBackground(final String... params) 
        {
            ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            if (conMgr.getActiveNetworkInfo() != null
                    && conMgr.getActiveNetworkInfo().isAvailable()
                    && conMgr.getActiveNetworkInfo().isConnected()) 
            {
                HttpClient httpclient = new DefaultHttpClient();

                JSONObject job1= new JSONObject();
                try 
                {
                    job1.put("status_key",status);
                    job1.put("method", "job_status");
                    job1.put("login_token", login_token);
                    //job1.put("status",status);
                    job1.put("job_id",job_id);

                    StringEntity se = new StringEntity(job1.toString());

                    HttpPost httppost = new HttpPost("http://suntechwebsolutions.com/clients/DGCapp/webservice.php");
                    httppost.setEntity(se);

                    HttpResponse response1 = httpclient.execute(httppost);
                    String data1 = EntityUtils.toString(response1.getEntity());
                    Log.e("response",""+data1);

                    JSONObject jo = new JSONObject(data1);

                    String err=jo.getString("err-code");

                    if(err.equals("0"))
                    {

                        if( status == 0)
                        {

                            database.update_data(adsArray.get(pos).get("message_id"),"2");

                            //Toast.makeText(con, "Job Accepted", Toast.LENGTH_SHORT).show();
                            //show_Toast("Job Accepted");
                            dialog.dismiss();
                            Intent i =new Intent(con,Job_Detail.class);
                            i.putExtra("pos", ""+pos);
                            i.putExtra("from", "accept");
                            i.putExtra("array",adsArray );
                            startActivity(i);
                        }
                        else 
                        {
                            database.delete_data(adsArray.get(pos).get("message_id"));
                            //show_Toast("Job Rejected");
                            //Toast.makeText(con, "Job Rejected", Toast.LENGTH_SHORT).show();
                            adsArray.clear();
                            adsArray = database.getRecords_ads("Select * from SUN_NOTI where status = 1");

                        }

                    }
                }
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
            else
            {
                final AlertDialog.Builder alert = new AlertDialog.Builder(ViewRecievedJobs.this);
                alert.setTitle("Alert !");
                alert.setMessage("No Internet connection ");
                alert.setPositiveButton("Ok",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog2,
                            int whichButton) 
                    {
                        dialog.dismiss();
                        dialog2.dismiss();


                    }
                });
                runOnUiThread(new Runnable() 
                {
                    public void run() 
                    {
                        //pDialog.dismiss();
                        alert.show();
                    }
                });
            }

            return params;

        }             

        @SuppressLint("NewApi")
        @Override
        protected void onPostExecute(String[] result) 
        {
            super.onPostExecute(result);

            if(dialog.isShowing())
            {
                dialog.dismiss();
            }
            if(status == 2)
            {
                Toast.makeText(con, "Job Rejected", Toast.LENGTH_SHORT).show();
                list.setAdapter(new ReceivedJobList());
            }
        }

        /*public void show_Toast(String msg)
        {
            Toast.makeText(con, msg, Toast.LENGTH_SHORT).show();
        }*/
    }   


}
reixa
  • 6,903
  • 6
  • 49
  • 68
user3905549
  • 29
  • 1
  • 1
  • 8
  • I agree with you but I want to know where I have attached that handler or timer code the java code that I have post. – user3905549 Aug 04 '14 at 07:10

1 Answers1

0

you can create a service that runs in the background and that will timeout after 20 minutes and delete your notification.Before that a notification should be there to notify the user... and the user should be able to dismiss it on their own.

Reference :

Make notification disappear after 5 minutes

Community
  • 1
  • 1
Krupa Patel
  • 3,309
  • 3
  • 23
  • 28