我已经按照Google提供的本地服务示例进行了操作,但是我Context::bindService(...)总是返回false并且ServiceConnection::onServiceConnected也从未调用过.
我明白会Context::bindService()立即返回,但我的ServiceConnection对象永远不会被触发.
我不知道这些是否适用
Intent,它按预期工作.有任何人对此有经验吗?请帮帮我.
谢谢,PS我的目标是Android 1.6
首先我要提一下,我正在使用ActionBarSherlock库来实现向后兼容性.
我有一个活动,ListFragment它在第一次启动时添加一个.我有一个Loader我实现的自定义,并非常密切地遵循AsnycTaskLoader示例.我ListFragment实现了LoaderCallbacks<Cursor>界面.添加片段(onCreateLoader(),onLoaderFinished())和替换片段()时,将调用所有适当的回调方法onLoaderReset().
我的onActivityCreated(Bundle)方法看起来像这样:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAccountsDbAdapter = new AccountsDbAdapter(getActivity().getApplicationContext());
setHasOptionsMenu(true);
mCursorAdapter = new AccountsCursorAdapter(getActivity()
.getApplicationContext(), R.layout.list_item_account, null,
new String[] { DatabaseHelper.KEY_NAME },
new int[] { R.id.account_name }, 0);
setListAdapter(mCursorAdapter);
getLoaderManager().initLoader(0, null, this);
}
Run Code Online (Sandbox Code Playgroud)
稍后,将ListFragment替换为另一个片段B.当用户按下后退按钮时,将删除片段B并再次添加ListFragment.但是,列表为空,仅android:empty显示元素,并且不调用任何LoaderCallback方法.我可以使用调试器来确定getLoaderManager().initLoader(0, null, this);实际调用它,但没有别的.当我将其更改getLoaderManager().restartLoader(0, null, this);为时,将调用回调,但仍然我的列表仍为空(尽管有数据,视图不会刷新).
如何在返回布局时让ListFragment自行刷新?有没有人遇到过这个,你是怎么解决的?
仅供参考,这是我的回调方法
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return …Run Code Online (Sandbox Code Playgroud) java android listview actionbarsherlock android-support-library
在我的应用程序中,我使用了用户的默认语言环境Locale.getDefault(),然后将其传递给Currency.getInstance(Locale).它主要起作用,但我已经开始从用户那里获得报告IllegalArgumentException,在堆栈跟踪中显示以下内容:
引起:java.lang.IllegalArgumentException:不支持的ISO 3166国家:org中的java.util.Currency.getInstance(Currency.java:81)中的en_UK.
我希望Android只返回有效的语言环境,但显然并非如此.
如何处理此类情况以确保我只获得有效的ISO 3166区域设置?简单的方法是处理这种特殊情况,但如果有的话,我宁愿使用通用解决方案.
有人有这方面的经验吗?谢谢.