0
Picasso.with(getActivity().getApplicationContext()).load(imageString).resize(250, 250)
    .into(image, new Callback() {
        @Override
        public void onSuccess() {
            Log.e("profilepicsucess", "");
        }

        @Override
        public void onError() {
            Log.e("profilepicfalse :3", "");
        }
});

当我尝试使用 Picasso 下载照片时,有时我的应用程序在没有访问 onSuccess、onError 函数的情况下崩溃!我的logcat中有这个

(W /设置:设置aircraft_mode_on已从android.provider.Settings.System移动到android.provider.Settings.Global,返回只读值。)

我搜索了它,发现我应该导入:

import static android.provider.Settings.System.AIRPLANE_MODE_ON;

并编写此函数

static boolean isAirplaneModeOn(Context context) {
    ContentResolver contentResolver = context.getContentResolver();
    return Settings.System.getInt(contentResolver, AIRPLANE_MODE_ON, 0) != 0;
}

其实我不知道在哪里写**

4

1 回答 1

0

您收到警告的原因是从 Jelly Bean 4.2 及更高版本开始,飞行模式设置已移至Settings.Global.

使用此功能检查飞行模式:

/**
 * Gets the state of Airplane Mode.
 * 
 * @param context
 * @return true if enabled.
 */
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public static boolean isAirplaneModeOn(Context context) {        
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
        return Settings.System.getInt(context.getContentResolver(), 
                Settings.System.AIRPLANE_MODE_ON, 0) != 0;          
    } else {
        return Settings.Global.getInt(context.getContentResolver(), 
                Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
    }       
}

但是,我需要更多细节来帮助解决崩溃。

这是如何使用此功能:

if(!isAirplaneModeOn(getActivity().getApplicationContext()){   
    //Picasso Code
    Picasso.with(getActivity().getApplicationContext()).load(imageString).resize(250, 250)
        .into(image, new Callback() {
            @Override
            public void onSuccess() {
                Log.e("profilepicsucess", "");
            }

            @Override
            public void onError() {
                Log.e("profilepicfalse :3", "");
            }
    });
}else{
    //do something else?
}
于 2015-06-21T17:50:02.147 回答