我一直在与内容观察员合作.当我使用content://sms消息被跟踪,我能够通过onchange方法得到它.但是当我改变它时, content://sms/sent它无法正常工作.我没有在onchange方法中获得任何活动.有没有人能解决这个问题?任何帮助都非常感谢.谢谢.
我已经通过发送消息的观察者定义了以下服务.问题是,当发送消息时,我感觉到在contentobserver的onChange方法上被调用了3次.¿有人知道告诉我为什么?
谢谢
public class DSMSService extends Service {
private static final String CONTENT_SMS = "content://sms";
private class MyContentObserver extends ContentObserver {
ContentValues values = new ContentValues();
int threadId;
public MyContentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.v(TAG, "****************************** SMS change detected *************************************");
Log.v(TAG, "Notification on SMS observer");
// save the message to the SD card here
Uri uriSMSURI = Uri.parse("content://sms");
Cursor cur = getBaseContext().getContentResolver().query(uriSMSURI, null, null, null, null);
// this will make it point to the …Run Code Online (Sandbox Code Playgroud) 每个联系人都没有时间戳吗?
我需要通过更改(添加,删除或更改)通知联系人.我已经实现了一个ContentObserver,但通过这种方法,我只能在联系人发生更改时收到通知,但我不知道哪个联系人已被修改!有什么建议?
android contacts contactscontract android-contacts contentobserver
我的应用程序将手机上的所有联系人与服务器"同步".但是,部分要求是,如果插入,更新或删除任何联系人,则必须再次进行同步以保持数据完整性.我知道注册一个ContentObserveron ContactsContract.Contacts.CONTENT_URI,但任何这样的观察者都必须在Activity上取消注册onPause(),因此如果该应用程序当时没有运行则不会收到通知.
我也不想在服务中实现内容观察者,因为服务也不是永久性的.另外,我不喜欢24x7全天候运行的想法.
那么,有什么方法可以检测到自同步后联系人已经改变了吗?我不需要实时通知,所以只有在下次运行应用程序时才会发生此检测.
在这里,我试图在我的应用程序中使用已发布的apk(在Play商店中发布为公共应用程序)获取最后一次调用日志历史记录.现在我已经将我的应用程序作为一个组织的私有应用程序发布了我无法在我的私有应用程序中获取呼叫日志历史记录,
要获取通话记录历史记录,我已经开发了如下代码:
public class CallLogListener extends BroadcastReceiver {
private String tag = "CallLogListener";
History h;
Call call;
/**
* This method is called when BroadcastReceiver receive some action from another app
*
* @param mContext Context which is received by BroadcastReceiver
* @param i Intent which is received by BroadcastReceiver
*/
@Override
public void onReceive(Context mContext, Intent i) {
// TODO Auto-generated method stub
try {
h = new History(new Handler(), mContext, "0");
mContext.getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, h); …Run Code Online (Sandbox Code Playgroud) android broadcastreceiver contentobserver android-broadcastreceiver
我在a CursorAdapter中使用a ListFragment来加载和显示注释列表.
public class CommentsFragment extends ListFragment implements LoaderCallbacks<Cursor> {
protected Activity mActivity;
protected CursorAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mActivity = getActivity();
mAdapter = new CommentsCursorAdapter(mActivity, null, 0);
setListAdapter(mAdapter);
mActivity.getContentResolver().registerContentObserver(CustomContract.Comments.CONTENT_URI, false, new CommentsObserver());
getLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle extras) {
Uri uri = CustomContract.Comments.CONTENT_URI;
return new CursorLoader(mActivity, uri, null, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
mAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) …Run Code Online (Sandbox Code Playgroud) android android-contentprovider contentobserver android-cursorloader android-cursoradapter
由于应用程序的电池使用,内存和CPU使用需要关注,多个内容服务器与多个广播接收器的费用是多少?
例1:
使用START_STICKY运行的服务,使用5个正确注册/未注册的contentobservers.
例2:
从清单中设置的5个广播接收器触发的服务.
例3:
使用START_STICKY运行的服务,使用5个注册的广播接收器.
观察者和接收者之间电池使用/ ram/cpu的真正区别是什么?有没有专业人士可以参与其中?我假设1个实例不会产生太大影响,但让我们一起运行5个以上的例子.
我想检测用户何时安装或删除应用程序,但我没有找到BroadcastReceiver这样做.
在我的应用程序中,我获得了有关已安装的应用程序的信息PackageManager,但我不想定期扫描应用程序.有没有BroadcastReceiver这样做?还是任何ContentObserver?是否可以获得已安装或删除应用程序的通知?
android broadcastreceiver android-package-managers contentobserver
嗨,我正在尝试使用以下代码.内容解析器无法使用此功能.任何人都可以提出一个想法
getContentResolver().registerContentObserver(MyContentProvider.CONTENT_URI,true, new ContentObserver(new Handler()){
@Override public void onChange( boolean selfChange){
showDialog();
}
@Override
public void onChange(boolean selfChange, Uri uri) {
// Handle change.
showDialog();
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在尝试维护一个联系人数据库,并在 URI 中的某些内容发生更改时立即获取对添加/更新/删除的回调。
我写了一个 ContentObserver 来观察ContactsContract.Contacts.CONTENT_URI上的联系人。一旦联系人发生变化,我就会收到回调,然后通过检查ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP 来更新我的数据库。虽然这适用于添加/更新,但它不适用于删除联系人。
我不想解析内存中的所有联系人并检查 android 数据库。这需要时间和 CPU。
我知道这些类型存在许多问题,但我无法弄清楚删除联系人的具体内容。
是否存在执行此操作的方法?
android contacts contactscontract android-contacts contentobserver
我有一个带有SQLite数据库的Android应用程序,我想知道如何创建和注册ContentObserver将通知数据库更改的通知.我知道我可以使用a来做这个ContentProvider,但是我只使用我的应用程序的数据库,所以没有必要把它变成一个ContentProvider,我想知道是否有办法避免这种情况.
谢谢!
我正在开发一个应用程序,其中存储了CallLog提供商的呼叫日志详细信息。
Android将呼叫日志存储在数据库中,我正在从该数据库复制新行。
现在,我想在用户结束通话时复制通话详细信息。为此,我使用PhoneStateListener侦听状态振铃,摘机和空闲模式的方法,但是在调用结束后,空闲方法将调用多次,因此无法使用它。
其次,我使用ContentObserver了呼叫日志表,当Android在其中插入呼叫详细信息时,它会给我onChanged事件,那时我将这些详细信息复制到数据库中。
这是正确的使用方式ContentObserver吗?还有其他方法可以获取刚刚结束的新呼叫的详细信息吗?