在偏好更改侦听器中我已将其设置为使用Loader然后填充来下载新数据ListView,但是onCreateLoader()当我更改首选项时仅调用该函数,onLoadFinished()回调函数仍然ListView未被调用,因此我没有更新新数据,我也碰巧有刷新按钮执行相同的操作,即下载数据增益并使用新数据填充列表,但此处onLoadFinished()通过更新列表调用.
刷新按钮代码
case R.id.menu_refresh :
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
if(isConnected)
{
getSupportLoaderManager().initLoader(0,null,this).forceLoad();
}
else {
Toast.makeText(this,"No Internet",Toast.LENGTH_SHORT).show();
}
break;
Run Code Online (Sandbox Code Playgroud)
SharedPreference侦听器代码:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
if(isConnected)
{
//delfromold();
getSupportLoaderManager().initLoader(0,null,this).forceLoad();
Log.v("Prefrences Changed",s);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
装载机实施
public class Loade …Run Code Online (Sandbox Code Playgroud)