在服务完成后执行语句

时间:2013-02-26 06:52:35

标签: android

我有一个做VCardparsing的服务。我希望在完成后执行一个方法。由于我的方法包含数据库查询,因此无法将其直接包含在服务中。

我发现我可以检查服务是否从here运行。但这不符合我的目的。我该怎么办?

修改

private void createFavorites() {


        DBAdapter db = new DBAdapter(this);
        db.open();
        Cursor favoriteCursor = db.getAllNumbers();


        Uri contactUri = ContactsContract.Data.CONTENT_URI;
        String[] contactProjection = new String[] {
                ContactsContract.Data._ID,
                ContactsContract.Data.DATA1,// gets number
                ContactsContract.Data.DATA2,// gets type
        };

        Cursor contactCursor = managedQuery(contactUri, contactProjection,
                null, null, null);

        CursorJoiner joiner = new CursorJoiner(favoriteCursor,
                new String[] { DBAdapter.KEY_NUMBER }, contactCursor,
                new String[] { ContactsContract.Data.DATA1 });

        MatrixCursor cursor = new MatrixCursor(new String[] { "number"}, 10);
        for (CursorJoiner.Result joinerResult : joiner) {
            switch (joinerResult) {
            case BOTH: // handle case where a row with the same key is in
                String id = contactCursor.getString(0);
                // String secret_identity = sipCursor.getString(1);
                cursor.addRow(new String[] { id });
                break;
            }
        }
        db.close();
        Log.d(LOG_TAG, "final favorite contact " + cursor.getCount() + favoriteCursor.getCount() + contactCursor.getCount());

    }

我在这里要做的是,我已经有一个数据库,其中包含我最喜欢的数字。当我解析vcf时,如果其中一个vcfs中存在该数字,我想将它们标记为收藏夹。

1 个答案:

答案 0 :(得分:0)

你需要使用IntentService并在完成服务中的所有操作后向你的相关活动发送Message,然后执行方法,BTW你是什么意思“因为我的方法包含数据库查询我不能将其直接包含在服务中“,您也可以访问服务中的数据库

相关问题