Java 使用移动数据时,imageview不会更新,但使用wifi时会更新

Java 使用移动数据时,imageview不会更新,但使用wifi时会更新,java,android,mysql,mobile,Java,Android,Mysql,Mobile,因此,我正在开发一款android移动应用程序,可以将数据和图像上传到数据库。这一切都适用于我使用mysql和托管的数据库部分。im现在唯一的问题是,当im使用wifi时,imageView会立即更新为我上传的最新图像,但当im使用移动数据时,imageView不会刷新为我上传的最新图像。请告诉我如何修复这个错误。先进的TQM 1.AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns

因此,我正在开发一款android移动应用程序,可以将数据和图像上传到数据库。这一切都适用于我使用mysql和托管的数据库部分。im现在唯一的问题是,当im使用wifi时,imageView会立即更新为我上传的最新图像,但当im使用移动数据时,imageView不会刷新为我上传的最新图像。请告诉我如何修复这个错误。先进的TQM

1.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.user.cliniclocum">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/caduceus_medicine_symbol_white_black_button"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainPageLogin"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".RegistrationPage"
        android:label="@string/title_activity_registration_page" />
    <activity
        android:name=".ClinicOwnerMainPage"
        android:label="@string/title_activity_clinic_owner_main_page" />
    <activity
        android:name=".DoctorMainPage"
        android:label="@string/title_activity_doctor_main_page" />
    <activity
        android:name=".ClinicOwnerProfilePage"
        android:label="@string/title_activity_clinic_owner_profile_page" />
    <activity
        android:name=".ClinicOwnerUploadImagePage"
        android:label="@string/title_activity_clinic_owner_upload_image" />
    <activity
        android:name=".ClinicOwnerSetLocumJobPage"
        android:label="@string/title_activity_clinic_owner_set_locum_job" />
    <activity
        android:name=".CoViewLocumPosted"
        android:label="@string/title_activity_co_view_locum_posted" />
    <activity
        android:name=".CoUpdateLocumPostedDetails"
        android:label="@string/title_activity_co_locum_posted_details" />
    <activity
        android:name=".DoProfilePage"
        android:label="@string/title_activity_do_profile_page" />
    <activity
        android:name=".DoUploadApcImage"
        android:label="@string/title_activity_do_upload_apc_image" />
    <activity
        android:name=".DoViewLocumPost"
        android:label="@string/title_activity_do_view_locum_post" />
    <activity
        android:name=".DoViewLocumDetails"
        android:label="@string/title_activity_do_view_locum_details" />
    <activity
        android:name=".DoViewClinicProfile"
        android:label="@string/title_activity_do_view_clinic_profile" />
    <activity android:name=".CoImageFullScreen" />
</application>

2.ProfilePage.java

public class ClinicOwnerProfilePage extends AppCompatActivity implements View.OnClickListener{

TextView textViewUserRole;

EditText editTextCoProfilePageName, editTextCoProfilePageAddress, editTextCoProfilePageClinicOwnerName, editTextCoProfileFacilities;
Button buttonCoProfileUploadClinicImage, buttonCoProfileUpdateProfile;

Spinner spinnerCoProfilePatientTurnover;
ArrayAdapter<CharSequence> adapter;

private ImageView imageViewCoProfilePageClinicImage;
private Bitmap bitmap;
String imagePath;

private ProgressDialog loading;

String receiveSpEmail;
String passedSpPatientTurnover;

// added for refreshing event
SwipeRefreshLayout swipeRefreshLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clinic_owner_profile_page);

    textViewUserRole = (TextView)findViewById(R.id.tvCoUserRole);

    editTextCoProfilePageName = (EditText)findViewById(R.id.etCoProfileName);
    editTextCoProfilePageAddress = (EditText)findViewById(R.id.etCoProfileAddress);
    editTextCoProfilePageClinicOwnerName = (EditText)findViewById(R.id.etCoProfileClinicOwnerName);
    editTextCoProfileFacilities = (EditText)findViewById(R.id.etCoProfileFacilities);

    buttonCoProfileUploadClinicImage = (Button)findViewById(R.id.btnCoProfileUploadImage);
    buttonCoProfileUpdateProfile = (Button)findViewById(R.id.btnCoProfileUpdateProfile);

    buttonCoProfileUploadClinicImage.setOnClickListener(this);
    buttonCoProfileUpdateProfile.setOnClickListener(this);

    spinnerCoProfilePatientTurnover = (Spinner)findViewById(R.id.spCoProfileUpdatePatientTurnover);
    adapter = ArrayAdapter.createFromResource(this, R.array.SpinnerCoUpdatePatientTurnover, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinnerCoProfilePatientTurnover.setAdapter(adapter);

    spinnerCoProfilePatientTurnover.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            passedSpPatientTurnover = spinnerCoProfilePatientTurnover.getItemAtPosition(position).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

    receiveSpEmail();
    getCoProfileData();

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    imageViewCoProfilePageClinicImage = (ImageView) findViewById(R.id.ivCoProfileClinicImage);
    //getCoImageProfile();
    getImage();


    /*imageViewCoProfilePageClinicImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            // to send bitmap using intent, we need to change it into ByteArray first and putting byteArray into the intent extra
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 25, stream);
            byte[] byteArray = stream.toByteArray();

            Intent fullScreenIntent = new Intent(ClinicOwnerProfilePage.this, CoImageFullScreen.class);
            fullScreenIntent.putExtra("CoImage", byteArray);
            startActivity(fullScreenIntent);
        }
    });*/

    //added for pull to refresh

    swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipe);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            swipeRefreshLayout.setRefreshing(true);

            (new Handler()).postDelayed(new Runnable() {
                @Override
                public void run() {
                    getImage();
                }
            }, 3000);
        }

    });

    //end of refreshing event

}

public void receiveSpEmail(){
    SharedPreferences preferences = getSharedPreferences("PassingEmail", MODE_PRIVATE);
    receiveSpEmail = preferences.getString("passEmail", "..");
    textViewUserRole.setText(receiveSpEmail);

}

private void getCoProfileData() {
    loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);

    String url = ClinicOwnerGetProfile.DATA_URL+receiveSpEmail.toString().trim();

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            loading.dismiss();
            showJSON(response);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(ClinicOwnerProfilePage.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
}

private void showJSON(String response){
    String clinic_name="";
    String address = "";
    String clinicownername = "";
    String facilities = "";
    String patient_turnover = "";
    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray(ClinicOwnerGetProfile.JSON_ARRAY);
        JSONObject clinicOwnerData = result.getJSONObject(0);
        clinic_name = clinicOwnerData.getString(ClinicOwnerGetProfile.KEY_NAME);
        address = clinicOwnerData.getString(ClinicOwnerGetProfile.KEY_ADDRESS);
        clinicownername = clinicOwnerData.getString(ClinicOwnerGetProfile.KEY_CLINICOWNERNAME);
        facilities = clinicOwnerData.getString(ClinicOwnerGetProfile.KEY_FACILITIES);
        patient_turnover = clinicOwnerData.getString(ClinicOwnerGetProfile.KEY_PATIENT_TURNOVER);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    editTextCoProfilePageName.setText(clinic_name);
    editTextCoProfilePageAddress.setText(address);
    editTextCoProfilePageClinicOwnerName.setText(clinicownername);
    editTextCoProfileFacilities.setText(facilities);

    for (int i = 0; i < spinnerCoProfilePatientTurnover.getCount(); i++) {
        if (spinnerCoProfilePatientTurnover.getItemAtPosition(i).equals(patient_turnover)) {
            spinnerCoProfilePatientTurnover.setSelection(i);
            break;
        }
    }
}

/*//added for retrieve image - 13/2/16
private void getCoImageProfile() {

    String url = ClinicOwnerGetImage.DATA_URL+receiveSpEmail.toString().trim();

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            showImageJSON(response);
            bitmap = getBitmapFromUrl(imagePath);
            imageViewCoProfilePageClinicImage.setImageBitmap(bitmap);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(ClinicOwnerProfilePage.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

}

private void showImageJSON(String response){
    String image="";

    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray(ClinicOwnerGetImage.JSON_ARRAY);
        JSONObject employeeData = result.getJSONObject(0);
        image = employeeData.getString(ClinicOwnerGetImage.KEY_CLINIC_IMAGE);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    imagePath = image;

    // added for refreshing event - 5/3
    if(swipeRefreshLayout.isRefreshing())
    {
        swipeRefreshLayout.setRefreshing(false);
    }
    // end of refreshing

}
public Bitmap getBitmapFromUrl(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }

}
//end of retrieve image*/

//new image getter method - 12/3
private void getImage() {

    String email = receiveSpEmail.toString();


    class GetImage extends AsyncTask<String,Void,Bitmap> {
        ProgressDialog loading;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(ClinicOwnerProfilePage.this,"Please wait...","Fetching Image...", true, true);
        }

        @Override
        protected void onPostExecute(Bitmap b) {
            super.onPostExecute(b);
            loading.dismiss();
            imageViewCoProfilePageClinicImage.setImageBitmap(b);
            // added for refreshing event - 5/3
            if(swipeRefreshLayout.isRefreshing())
            {
                swipeRefreshLayout.setRefreshing(false);
            }
            // end of refreshing
        }

        @Override
        protected Bitmap doInBackground(String... params) {
            String receiveSpEmail = params[0];
            String add = "http://cliniclocum.org/CoGetImageProfile.php?email="+receiveSpEmail;
            URL url = null;
            Bitmap image = null;
            try {
                url = new URL(add);
                image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return image;
        }
    }

    GetImage gi = new GetImage();
    gi.execute(email);
}

//end of new method

public void saveSpCoProfile(){
    SharedPreferences preferences = getSharedPreferences("PassingCoProfile", MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putString("passCoAddress", editTextCoProfilePageAddress.getText().toString());
    editor.putString("passCoClinicName", editTextCoProfilePageName.getText().toString());
    editor.commit();
}


@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.btnCoProfileUploadImage:
            Intent CoUploadImage = new Intent(this, ClinicOwnerUploadImagePage.class);
            startActivity(CoUploadImage);
            break;

        case R.id.btnCoProfileUpdateProfile:
            if(editTextCoProfilePageName.getText().toString().equals("")|| editTextCoProfilePageAddress.getText().toString().equals("")){
                Toast.makeText(this, "Please Enter Clinic Name and Address", Toast.LENGTH_LONG).show();
            }
            else {
                String type = "CoUpdate";
                String update_CoName = editTextCoProfilePageName.getText().toString();
                String update_CoAddress = editTextCoProfilePageAddress.getText().toString();
                String update_CoClinicOwnerName = editTextCoProfilePageClinicOwnerName.getText().toString();
                String update_CoFacilities = editTextCoProfileFacilities.getText().toString();
                String update_CoPatientTurnover = passedSpPatientTurnover;


                CoUpdateBackgroundWorker coUpdateBackgroundWorker = new CoUpdateBackgroundWorker(this);
                coUpdateBackgroundWorker.execute(type, receiveSpEmail, update_CoName, update_CoAddress, update_CoClinicOwnerName, update_CoFacilities, update_CoPatientTurnover);

                coUpdateBackgroundWorker.setOnTaskFinishedListener(new CoUpdateBackgroundWorker.OnTaskFinishedListener() {
                    @Override
                    public void onTaskFinished(String result) {

                        switch (result) {

                            case "Profile Updated":
                                saveSpCoProfile();
                                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
                                Intent successIntent = new Intent(ClinicOwnerProfilePage.this, ClinicOwnerMainPage.class);
                                startActivity(successIntent);
                                break;

                            default:
                                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
                                break;
                        }
                    }

                });
            }
            break;

    }
}


@Override
public void onBackPressed() {
    Intent backIntent = new Intent(ClinicOwnerProfilePage.this, ClinicOwnerMainPage.class);
    startActivity(backIntent);
}
}
公共类ClinicOwnerProfilePage扩展AppCompativeActivity实现View.OnClickListener{
TextView textViewUserRole;
EditText editTextCoProfilePageName、editTextCoProfilePageAddress、editTextCoProfilePageClinicOwnerName、editTextCoProfileFacilities;
Button Button Profile上载ClinicImage,Button Profile更新配置文件;
喷丝器喷丝器旋转;
阵列适配器;
私有图像查看图像查看合作文件页面临床图像;
私有位图;
字符串图像路径;
私有对话框加载;
字符串receiveSpEmail;
字符串passedsPatientRevolution;
//为刷新事件添加了
SwipeRefreshLayout SwipeRefreshLayout;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u clinic\u owner\u profile\u页面);
textViewUserRole=(TextView)findViewById(R.id.tvCoUserRole);
editTextCoProfilePageName=(EditText)findViewById(R.id.etCoProfileName);
editTextCoProfilePageAddress=(EditText)findViewById(R.id.etCoProfileAddress);
editTextCoProfilePageClinicOwnerName=(EditText)findViewById(R.id.etCoProfileClinicOwnerName);
editTextCoProfileFacilities=(EditText)findViewById(R.id.etCoProfileFacilities);
buttonCoProfileUploadClinicImage=(按钮)findViewById(R.id.btnCoProfileUploadImage);
buttonCoProfileUpdateProfile=(Button)findViewById(R.id.btnCoProfileUpdateProfile);
ButtonConProfileUploadClinicImage.setOnClickListener(此);
buttonCoProfileUpdateProfile.setOnClickListener(此);
spinnerCoProfilePatientTurnover=(Spinner)findViewById(R.id.spCoProfileUpdatePatientTurnover);
adapter=ArrayAdapter.createFromResource(这个,R.array.SpinnerCoUpdatePatientTurnover,android.R.layout.simple\u spinner\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头旋转接头(接头);
spinnerCoProfilePatientTurnover.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
PassedSppatientOverflower=spinnerCoProfilePatientTurnover.getItemAtPosition(position.toString();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
receiveSpEmail();
getCoProfileData();
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(策略);
imageViewCoProfilePageClinicImage=(ImageView)findViewById(R.id.ivCoProfileClinicImage);
//getCoImageProfile();
getImage();
/*imageViewCoProfilePageClinicImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//要使用intent发送位图,我们需要先将其更改为ByteArray,然后将ByteArray放入intent extra
ByteArrayOutputStream=新建ByteArrayOutputStream();
compress(bitmap.CompressFormat.PNG,25,流);
byte[]byteArray=stream.toByteArray();
Intent fullScreenIntent=新意图(ClinicOwnerProfilePage.this,CoImageFullScreen.class);
fullScreenIntent.putExtra(“CoImage”,byteArray);
startActivity(全屏意图);
}
});*/
//添加了拉刷新功能
swipeRefreshLayout=(swipeRefreshLayout)findViewById(R.id.swipe);
swipeRefreshLayout.setOnRefreshListener(新的swipeRefreshLayout.OnRefreshListener()){
@凌驾
公共void onRefresh(){
swipeRefreshLayout.setRefreshing(true);
(新的处理程序()).postDelayed(新的可运行(){
@凌驾
公开募捐{
getImage();
}
}, 3000);
}
});
//刷新事件结束
}
public void receiveSpEmail(){
SharedReferences首选项=GetSharedReferences(“PassingEmail”,MODE_PRIVATE);
receiveSpEmail=preferences.getString(“passEmail”、“.”);
textViewUserRole.setText(接收邮件);
}
私有void getCoProfileData(){
loading=ProgressDialog.show(这是“请稍候…”、“正在获取…”、false、false);
String url=ClinicOwnerGetProfile.DATA_url+receiveSpEmail.toString().trim();
StringRequest StringRequest=新的StringRequest(url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
loading.dispose();
showJSON(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(ClinicOwnerProfilePage.this,error.getMessage().toString(),Toast.LENGTH_LONG.show();
}
});
RequestQueue RequestQueue=Volley.newRequestQueue(this);
添加(stringRequest);
}
私有void showJSON(字符串响应){
字符串clinic_name=“”;
字符串地址=”;
字符串clinicownername=“”;
字符串=”;
字符串patient_-overship=“”;
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONArray result=jsonObject.getJSONArray(Cli
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />


<uses-permission android:name="android.permission.WAKE_LOCK" />

<permission
    android:name="com.example.XYZ.AppName.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.XYZ.AppName.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/cricon"
    android:label="@string/activity_logoN"
    android:supportsRtl="true"
    android:largeHeap="true"
    android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize"
    android:theme="@style/AppTheme">