我了解内容提供商允许在应用程序之间公开共享数据.但是,我想知道是否有人想让内容提供商只在你自己的应用程序中使用.这样做有什么好处吗?有什么缺点?
在过去,我刚刚实现了SQliteOpenHelper来访问我的数据库中的数据,但我正在考虑创建一个Content Provider.我觉得请求数据的URI方法简洁明了.另一方面,仅仅为我的应用程序使用内容提供程序是多余的(因为在其中我将有一个SQliteOpenHelper类)和更多的工作比我需要的?
我正在使用ActionBar.如果我将它设置为旋转,我想在标题栏上有一个刷新进度微调器 - 否则隐藏它.那可能吗?:
// My menu has a refresh item, but it shouldn't be visible on the
// actionbar unless it's spinning.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh"
android:title="@string/refresh"
android:icon="@drawable/ic_action_refresh" />
</menu>
...
// When I need to show some work being done on my activity,
// can I somehow now make the spinner associated with the
// refresh item become visible on the action bar?
getActionBarHelper().setRefreshActionItemState(true);
Run Code Online (Sandbox Code Playgroud)
除非它正在"进行中"/旋转,否则我不希望它在ActionBar上.
谢谢
如果我从Activity调用ContentProvider,哪个线程运行在ContentProvider中?
例如,如果Activity被杀死并且ContentProvider中正在执行查询,会发生什么?假设您的网络查询速度很慢f.ex.
我在哪里可以获得Content Provider开箱即用的Android优惠的完整列表?
具体来说,我正在寻找列出收到短信的内容提供商.
是否可以将Android图形布局放在Android XML布局旁边,以便我可以同时修改它们?更改XML并立即查看效果会更好,而不是单击选项卡一直更改它.
是否有一个主题可以在Eclipse或Android Studio中用于执行XML布局?我知道我们应该使用:
<style name="CustomTheme" parent="@android:style/Theme.DeviceDefault">
Run Code Online (Sandbox Code Playgroud)
在设备上获取Glass主题,但在编辑器中进行布局时如何?
文档中有明确的推荐用于在实现ContentProvider时定义所有uris .但我对URI匹配器部分感到困惑:例如,我有包org.company.example,表名为'items',然后我定义
public static final Uri CONTENT_URI =
Uri.parse("content://org.company.example.sampleprovider/items");
Run Code Online (Sandbox Code Playgroud)
我应该使用什么权限部分来匹配静态init中的URI:
private static final UriMatcher uriMatcher;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI("what goes here?", "items", ITEM);
uriMatcher.addURI("what goes here?", "items/#", ITEM_ID);
}
Run Code Online (Sandbox Code Playgroud) 我有一个ContentProvider类和一个DatabaseHelper类(扩展SQLiteOpenHelper).ContentProvider实例化需要访问Context的Helper,因为构造函数需要它:
public DBHelper(Context context, AssetFileDescriptor db_asset) {
super(context, DB_NAME, null, 1);
Run Code Online (Sandbox Code Playgroud)
您是否至少知道从ContentProvider获取Context的一种方法?
谢谢 :)
在Android上查询ContentProvider时,通过为该ContentProvider提供"内容URI"来指定感兴趣的ContentProvider.当多个ContentProvider有意地提供相同的URI时会发生什么?或恶意?
当我试图在手机上打开图片时,我已经看到了可以"处理"图像的应用程序.这会发生同样的事吗?
使用远程视图更新LiveCard时出现问题.我正在使用此代码发布.我假设您可以使用TimelineManager.getLiveCard(id)获取LiveCard,然后再次发布.我得到的结果是两个LiveCards.我发布卡片的时候我都使用相同的ID.
作为一种解决方法,我正在取消发布然后发布,但这不是一个平滑的过渡,因为它显示了"Okay Glass"之间.
private void publishCard(Context context) {
String cardId = "myCard";
mLiveCard = tm.getLiveCard(cardId);
mLiveCard.setNonSilent(true);
RemoteViews rv = new RemoteViews(context.getPackageName(),
R.layout.activity_vitals_glass);
rv = updateViews(rv, pr);
mLiveCard.setViews(rv);
Intent intent = new Intent(context, MenuActivity.class);
mLiveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
mLiveCard.publish();
}
Run Code Online (Sandbox Code Playgroud)
updateViews()方法只是在远程视图上设置textviews.使用RemoteViews更新LiveCard的正确方法是什么?