@outmaster

Почему приложение под Andriod неожиданно остановилось?

package com.example.aaa111;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import com.example.aaa111.R;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;



import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;


import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MainActivity extends ListActivity {
private SimpleAdapter adapter;
private ProgressDialog pDialog;

	
	 
    // URL to get contacts JSON
    private static String url = "http://test.pokupat.net/get_all_products.php";

    // JSON Node names
    private static final String TAG_PRODUCTS = "products";
    private static final String TAG_PID = "pid";
    private static final String TAG_NAME = "name";
    private static final String TAG_CR = "created_at";
    private static final String TAG_TIME = "time";
    // contacts JSONArray
    JSONArray contacts = null;

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> contactList;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
           
        contactList = new ArrayList<HashMap<String, String>>();
        
        ListView lv = getListView();
        
    	//         // Listview on item click listener
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String name = ((TextView) view.findViewById(R.id.name))
                        .getText().toString();
                String pid = ((TextView) view.findViewById(R.id.pid))
                        .getText().toString();


                // Starting single contact activity
                Intent in = new Intent(getApplicationContext(),
                        SingleContactActivity.class);
                in.putExtra(TAG_NAME, name);
                in.putExtra(TAG_PID, pid);

                startActivity(in);

            }
        });
        
        final Handler handler = new Handler();
    	handler.postDelayed( new Runnable() {

    	    @Override
    	    public void run() {
    	    	 contactList.clear();
    	    	 new GetContacts().execute();
    	        handler.postDelayed( this, 5 * 1000 );
    	    }
    	}, 10 * 1000 );
        
    	      
        
          adapter = new SimpleAdapter(
                MainActivity.this, contactList,
                R.layout.list_item, new String[] { TAG_NAME, TAG_PID
                         }, new int[] { R.id.name,
                        R.id.pid});
        	
      	setListAdapter(adapter);
        	
        	

        // Calling async task to get json uyffuyfuyfuy fyuf yfuy fuf uyfuy
        
    }
    public void playBeep() {
   	 
        try {
            Uri notification = RingtoneManager
                    .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            Ringtone r = RingtoneManager.getRingtone(getApplicationContext(),
                    notification);
            r.play();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * Async task class to get json by making HTTP call
     * */
    private class GetContacts extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Showing progress dialog
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Please wait...");
            pDialog.setCancelable(false);
        //    pDialog.show();//

        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // Creating service handler class instance
            ServiceHandler sh = new ServiceHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

            Log.d("Response: ", "> " + jsonStr);

            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);

                    // Getting JSON Array node
                    contacts = jsonObj.getJSONArray(TAG_PRODUCTS);

                    // looping through All Contacts
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);

                        String name = c.getString(TAG_NAME);
                        String pid = c.getString(TAG_PID);
                        String crtime = c.getString(TAG_CR);
                        String time = c.getString(TAG_TIME);
                        
                        Double d1 = Double.valueOf(crtime);
                        Double d2 = Double.valueOf(time);
                        
                        if (d2-d1<6)
                        {
                        	playBeep();
                        	
                        }
                                                // tmp hashmap for single contact
                        HashMap<String, String> contact = new HashMap<String, String>();

                        // adding each child node to HashMap key => value
                        contact.put(TAG_NAME, name);
                        contact.put(TAG_PID, pid);



                        // adding contact to contact list
                        contactList.add(contact);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("ServiceHandler", "Couldn't get any data from the url");
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            // Dismiss the progress dialog
            if (pDialog.isShowing())
                pDialog.dismiss();
            	
            	
            runOnUiThread(new Runnable() {
                public void run() {
               
               	adapter.notifyDataSetChanged();
               
              
                }
            });
                   
            
        }
       

    }

}


Полный код здесь http://test.pokupat.net/aaa111.rar][1]
  • Вопрос задан
  • 2301 просмотр
Пригласить эксперта
Ответы на вопрос 1
@andreyh
приложение вылетат сразу после запуска?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы