Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新sdk 24后刷新json视图不起作用_Android_Android Fragments_Android Json - Fatal编程技术网

Android 更新sdk 24后刷新json视图不起作用

Android 更新sdk 24后刷新json视图不起作用,android,android-fragments,android-json,Android,Android Fragments,Android Json,切换到sdk24后,我遇到了一个问题。 阅读json php应用程序,但不再更新。你必须给她闭包,迫使她重读。 以前我经常刷新和更新listfragment perfect。不是现在。 我给我添加的新信息被添加到数据库中,或者你可以删除,但应用程序不更新 代码json阅读器+插入+删除+刷新: public class playlist_torrent extends ListFragment { Main2Activity activity= (Main2Activity) g

切换到sdk24后,我遇到了一个问题。 阅读json php应用程序,但不再更新。你必须给她闭包,迫使她重读。 以前我经常刷新和更新listfragment perfect。不是现在。 我给我添加的新信息被添加到数据库中,或者你可以删除,但应用程序不更新

代码json阅读器+插入+删除+刷新:

   public class playlist_torrent extends ListFragment {

    Main2Activity activity= (Main2Activity) getActivity();


    private ProgressDialog pDialog;

    // URL to get contacts JSON
    private static String url = "http://vrt.ro/remote/index-torrent.php?token=";

    // JSON Node names
    private static final String TAG_ID = "id";
    private static final String TAG_NAME = "name";
    private static final String TAG_IMAGE = "image";
    private static final String TAG_ADDRESS = "address";

    String POPUP_LOGIN_TITLE;
    String POPUP_LOGIN_TEXT;
    String EMAIL_HINT;
    String PASSWORD_HINT;

    // contacts JSONArray
    JSONArray contacts = null;

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> contactList;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_playlist_torrent, container, false);


        POPUP_LOGIN_TITLE=getActivity().getString(R.string.text_titlu_insert_stream_playlist);
        POPUP_LOGIN_TEXT=getActivity().getString(R.string.text_completeaza_datele);
        EMAIL_HINT=getActivity().getString(R.string.name_torrent);
        PASSWORD_HINT=getActivity().getString(R.string.magnet_torrent);
        final FloatingActionButton actionA = (FloatingActionButton) v.findViewById(R.id.action_a);
        actionA.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View view) {
                actionA.setTitle(getActivity().getString(R.string.text_add_new_url));


                AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());

                alert.setTitle(POPUP_LOGIN_TITLE);
                alert.setMessage(POPUP_LOGIN_TEXT);

                // Set an EditText view to get user input
                final EditText name = new EditText(getActivity());
                name.setHint(EMAIL_HINT);

                final EditText url_streaming = new EditText(getActivity());
                url_streaming.setHint(PASSWORD_HINT);




                LinearLayout layout = new LinearLayout(getActivity().getApplicationContext());
                layout.setOrientation(LinearLayout.VERTICAL);
                layout.addView(name);
                layout.addView(url_streaming);
                alert.setView(layout);

                alert.setPositiveButton(getActivity().getString(R.string.ok), new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {


                        if (url_streaming.getText().toString().compareToIgnoreCase("") == 0) {
                            Snackbar.make(view, R.string.error_url_emty_playlist, Snackbar.LENGTH_LONG).show();
                            return;
                        }

                        new Thread() {

                            public void run() {

                                try {

                                    HttpURLConnection.setFollowRedirects(false);
                                    // note : you may also need
                                    //HttpURLConnection.setInstanceFollowRedirects(false)
                                    Bundle args = getArguments();
                                    String token = args.getString("token");
                                    String name_streaming = name.getText().toString();
                                    String Url_streaming = url_streaming.getText().toString();
                                    HttpURLConnection con =  (HttpURLConnection) new URL("http://vrt.ro/remote/insert-torrent.php?token="+token+"&nume="+name_streaming+"&url="+Url_streaming).openConnection();
                                    con.setRequestMethod("HEAD");
                                    if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {


                                        FragmentTransaction ft = getFragmentManager().beginTransaction();
                                        ft.detach(playlist_torrent.this).attach(playlist_torrent.this).commit();


// Reload current fragment



                                    }
                                    else{

                                    }
                                }
                                catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        }.start();
                    }
                });

                alert.setNegativeButton(getActivity().getString(R.string.cancel), new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        // Canceled.
                    }
                });

                alert.show();
            }
        });
        final FloatingActionButton actionB = (FloatingActionButton) v.findViewById(R.id.action_b);
        actionB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                actionB.setTitle(getActivity().getString(R.string.refresh_done));
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.detach(playlist_torrent.this).attach(playlist_torrent.this).commit();
            }
        });


        return v;
    }
    @Override
    public void onViewCreated (View view, Bundle savedInstanceState) {

        contactList = new ArrayList<HashMap<String, String>>();

        ListView lv = getListView();

        // Listview on item click listener
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, final View view,
                                    int position, long id) {
                // getting values from selected ListItem

                final String description = ((TextView) view.findViewById(R.id.mobile)).getText().toString();

                final String id_stream = ((TextView) view.findViewById(R.id.id_streaming)).getText().toString();

                // Starting single contact activity

                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
                builder.setTitle("Select");
                // builder.setMessage("Lorem ipsum dolor ....");
                builder.setItems(new CharSequence[]
                                {getString(R.string.play_video), getString(R.string.remove_video)},
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // The 'which' argument contains the index position
                                // of the selected item
                                switch (which) {
                                    case 0:

                                        TorrentPlayerFragment fragment3 = new TorrentPlayerFragment();
                                        fragment3.onDestroyView();
                                        FragmentTransaction fragmentTransaction3 = getFragmentManager().beginTransaction();
                                        Bundle args = new Bundle();
                                        args.putString("url", description);
                                        fragment3.setArguments(args);
                                        fragmentTransaction3.addToBackStack(null);
                                        //getFragmentManager().popBackStack();
                                        fragmentTransaction3.remove(fragment3);
                                        fragmentTransaction3.replace(R.id.frame,fragment3);
                                        fragmentTransaction3.commit();

//----
                                        break;
                                    case 1:
                                        // Snack Bar
                                        Snackbar bar = Snackbar.make(view, R.string.confirm_delete_playlist, Snackbar.LENGTH_LONG)
                                                .setAction(R.string.yes, new View.OnClickListener() {
                                                    @Override
                                                    public void onClick(View v) {

                                                        // ---Control remote api---
                                                        new Thread() {

                                                            public void run() {

                                                                try {
                                                                    HttpURLConnection.setFollowRedirects(false);
                                                                    // note : you may also need
                                                                    //HttpURLConnection.setInstanceFollowRedirects(false)

                                                                    HttpURLConnection con =  (HttpURLConnection) new URL("http://vrt.ro/remote/delete-torrent.php?id="+id_stream).openConnection();
                                                                    con.setRequestMethod("HEAD");
                                                                    if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {

                                                                        //--refresh fragment
                                                                        FragmentTransaction ft = getFragmentManager().beginTransaction();
                                                                        ft.detach(playlist_torrent.this).attach(playlist_torrent.this).commit();
                                                                        //Fin refresh fragment

                                                                        // startActivity(getIntent());
                                                                        // finish();

                                                 /*       final Handler handler = new Handler();
                                                        Runnable refresh = new Runnable() {
                                                            @Override
                                                            public void run() {
                                                                new onPreExecute().execute();
                                                                handler.postDelayed(this, 60 * 1000);
                                                            }
                                                        };
                                                        handler.postDelayed(refresh, 60 * 1000);     */
                                                                    }
                                                                    else{

                                                                    }
                                                                }
                                                                catch (Exception e) {
                                                                    e.printStackTrace();
                                                                }
                                                            }
                                                        }.start();
                                                        // ----fin Control remote api----
                                                    }
                                                });

                                        bar.show();


                                        break;
                                }
                            }
                        });
                builder.create().show();

            }
        });

        // Calling async task to get json
        new GetContacts().execute();

    }
    public static void createDirectory(File dir) throws IllegalStateException{
        if (!dir.exists()){
            if(!dir.mkdirs()){
                throw new IllegalStateException(
                        "Check if you've added permissions in AndroidManifest.xml: \n" +
                                "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/> \n"
                );
            }
        }
    }
    /**
     * 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(getActivity());
            pDialog.setMessage("Please wait...");
            pDialog.setCancelable(false);
            pDialog.show();

        }

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

            // Bundle bundle = getActivity().getIntent().getExtras();
            //String token = bundle.getString("id");
            Bundle args = getArguments();
            String myString = args.getString("token");

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

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

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

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

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

                        String id = c.getString(TAG_ID);
                        String name = c.getString(TAG_NAME);
                        String image = c.getString(TAG_IMAGE);
                        String address = c.getString(TAG_ADDRESS);


                        // tmp hashmap for single contact
                        HashMap<String, String> contact = new HashMap<String, String>();

                        // adding each child node to HashMap key => value
                        contact.put(TAG_ID, id);
                        contact.put(TAG_NAME, name);
                        contact.put(TAG_IMAGE, image);
                        contact.put(TAG_ADDRESS, address);

                        // 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();
            /**
             * Updating parsed JSON data into ListView
             * */



            ListAdapter adapter = new SimpleAdapter(



                    getActivity(), contactList,
                    R.layout.list_item, new String[]{TAG_NAME, TAG_ID,
                    TAG_ADDRESS}, new int[]{R.id.name,  R.id.id_streaming, R.id.mobile});



            setListAdapter(adapter);
        }


    }
}
请帮忙。多谢各位

编辑:


如果您留出几分钟的时间间隔并刷新它,它就会运行。但只有一次。就好像连接保持打开且不再响应一样。

修复了来自apache2的更改的ngix的此问题,现在工作正常。

修复了来自apache2的更改的ngix的此问题,现在工作正常

                                                                        //--refresh fragment
                                                                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                                                                    ft.detach(playlist_torrent.this).attach(playlist_torrent.this).commit();
                                                                    //Fin refresh fragment