小编cod*_*ser的帖子

Android Context.bindService始终返回false,并且永远不会触发ServiceConnection对象

我已经按照Google提供的本地服务示例进行了操作,但是我Context::bindService(...)总是返回false并且ServiceConnection::onServiceConnected也从未调用过.

我明白会Context::bindService()立即返回,但我的ServiceConnection对象永远不会被触发.

我不知道这些是否适用

  1. 我的活动在tabHost中运行,我想知道这是否会以任何方式影响服务绑定.
  2. 服务本身可能有问题,但我可以使用相同的服务调用启动服务Intent,它按预期工作.

有任何人对此有经验吗?请帮帮我.

谢谢,PS我的目标是Android 1.6

java service android

34
推荐指数
1
解决办法
1万
查看次数

当从后端堆栈返回布局时,如何刷新ListFragment?

首先我要提一下,我正在使用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

9
推荐指数
1
解决办法
9313
查看次数

如何使用非ISO 3166国家/地区创建货币实例,例如en_UK?

在我的应用程序中,我使用了用户的默认语言环境Locale.getDefault(),然后将其传递给Currency.getInstance(Locale).它主要起作用,但我已经开始从用户那里获得报告IllegalArgumentException,在堆栈跟踪中显示以下内容:

引起:java.lang.IllegalArgumentException:不支持的ISO 3166国家:org中的java.util.Currency.getInstance(Currency.java:81)中的en_UK.

我希望Android只返回有效的语言环境,但显然并非如此.

如何处理此类情况以确保我只获得有效的ISO 3166区域设置?简单的方法是处理这种特殊情况,但如果有的话,我宁愿使用通用解决方案.

有人有这方面的经验吗?谢谢.

java android locale

4
推荐指数
1
解决办法
2737
查看次数