我刚刚实现了一个CursorLoader,效果很好!事实上,我不相信我的ListView会在基础数据发生变化时自动更新,直到我测试它为止.这显然是setNotificationUri的神奇之处.
我的问题是,它如何知道光标中的数据何时发生了变化?说我在某处静静地插入一行.底层机制是否经常查询数据库并将其与过去的数据进行比较?如果数据集很大,这不是非常低效吗?
在我使用游标加载器之前,我会在必要时手动刷新.很高兴我不再需要这样做,但是让CursorLoader在后台使用它是否有效?
我的syncadapter运行良好,除了一件事.用户安装应用程序后,我的应用程序会同步两次.稍后,如果我在"设置"中手动同步它,它只会按预期同步一次.这只是应用程序的第一次运行.
这是我的"onCreate"中的代码,如果尚未创建帐户,则创建帐户并设置syncadapter.关于我做错了什么的任何想法?
if (accountManager.addAccountExplicitly(appAccount, null, null)) {
ContentResolver.setIsSyncable(appAccount, PROVIDER, 1);
ContentResolver.setSyncAutomatically(appAccount, PROVIDER, true);
Bundle extras = new Bundle();
extras.putBoolean("dummy stuff", true);
ContentResolver.addPeriodicSync(appAccount, PROVIDER, extras, 43200);
}
Run Code Online (Sandbox Code Playgroud)
我希望的行为是让应用程序在安装后立即同步一次,然后根据"addPeriodicSync"语句定期进行同步.
我主要编写乐趣,也许以后想要自由职业者.我目前正在为Android编程,并免费发布了一些应用程序.关键在于构建应用程序,而不是从它们赚钱,所以我也没有广告.
我以为我会将我的技能扩展到iOS,但发现我必须购买一台Mac,并且还要向Apple 支付年费,以便在iOS应用商店中发布我的应用.
也许我不是在这里理解一些东西,或者我错过了一些重要的信息.有没有办法我可以免费在商店中编写和分发我的应用程序而无需购买昂贵的macbook?我刚刚买了一台新的索尼VAIO,我买不起另一台电脑(我也不需要).
我是否掌握了所有事实,或者我错过了什么?
我有一个后台服务,每天在交易中做一些繁重的工作.如果用户此时正好启动应用程序,我希望他们坐下来直到完成(大约10秒左右).在所有活动中,最好的方法是什么?检查服务是否在每个活动的"onResume"功能中运行?我们怎么知道它何时完成?当地的广播,我猜...
最好的做法是谁?
更新:我设法停止"onResume"直到我的服务完成.问题是用户在此之前只看到一个空白屏幕.我在onResume暂停时尝试了progressdialogs和常规对话框.但它们只有在onResume返回时才会显示,并且会破坏目的.换句话说,在调用"show()"后,"进度"对话框不会立即"显示":(
我想到使用CursorLoaders和Loadermanagers的一个好处是你不需要手动管理游标的生命周期.所以我使用loadermanager使用支持包将适配器绑定到AutoCompleteTextView.
它工作得很好,除了它随机抛出一个错误,说"IllegalStateException - 尝试重新打开已经关闭的对象".当然,如果我们使用装载程序管理器,那不应该发生吗?
这是代码:
package com.bhagwad.tennis;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter.CursorToStringConverter;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import com.bhagwad.tennis.TennisSchedule.TennisScheduleColumns;
public class WidgetConfiguration extends FragmentActivity implements OnClickListener, LoaderCallbacks<Cursor> {
Button mSaveWidget;
AutoCompleteTextView mPlayerName;
int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
String mSelection ="";
SimpleCursorAdapter mAdapter;
public static String PREFS = "com.bhagwad.tennis.appwidget";
public static final String PREFS_PREFIX_KEY = "prefix_";
@Override
protected void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) android autocompletetextview android-loadermanager android-cursorloader
我需要在我的应用程序中有两个单独的同步.一个是每12小时完成一次.另一个是每周完成的.我希望它们都在相同的"帐户"下,因此可以单独启用/禁用每种类型的同步.
实际上,帐户是虚拟的 - 我不需要那个功能,所以我的所有验证方法都返回null.
但我只能让一个syncadapter显示一个帐户.知道我怎么能做到这一点?
我在我的网站上展示了很多代码。我网站的其余部分是响应式的,但“pre”标签拒绝缩小和显示水平滚动条。这是我的内容因顶部长“pre”标签而被截断的屏幕截图:
我正在使用溢出:水平,但您可以在示例中看到它不起作用。这是实际链接在此处输入链接描述
一旦我切换主题,它就可以正常工作!我正在使用 Genesis Framework 的子主题...