Androidの呼び出しContentProviderでの方法
1595 ワード
APP AはProvider方式で他のアプリケーション、例えばAPP Bにデータを提供し、APP BがAPP Aのメソッドを呼び出す必要がある場合、Providerはcallメソッドを書き換える必要があり、APP Bはcallメソッドを呼び出すことでAPP AのProviderのcallメソッドを実行し、Bでcallメソッドを呼び出す戻り値がProviderのcallメソッドの戻り値である.
APP AのProviderはcallメソッドを書き換える必要があります.
APP Bはcallメソッドを呼び出します.
呼び出し元のcallメソッドはProviderのcallメソッドよりもUriパラメータが1つ多いことがわかりますが、呼び出し元がcallメソッドを呼び出すと、どのProviderのcallメソッドを呼び出すかどうやって知るのでしょうか.
呼び出し元がcallメソッドを実行する場合,Uriマッチングに基づいてどのProviderのcallメソッドを実行するかである.マッチングルール:Uriのauthority.
Providerの登録は次のとおりです.
呼び出しは次のように使用できます.
その中でuriが「content://jobdispatcher「最初からauthorityが「jobdispatcher」であると一致するこのProvider.
APP AのProviderはcallメソッドを書き換える必要があります.
public class ContentProviderDemo extends ContentProvider {
@Override
public Bundle call(String method, String arg, Bundle extras) {
System.out.println("method:" + method);
Bundle bundle = new Bundle();
// put boolean , true、 fasle
bundle.putBoolean(method, true);
return bundle;
}
...
}
APP Bはcallメソッドを呼び出します.
String method = "isSuccess";
String uri = "content://jobdispatcher/abc.txt";
Bundle bundle = context.getContentResolver().call(
Uri.parse(uri), method, null, null);
// boolean
System.out.println(" :" + bundle.getBoolean(method));
呼び出し元のcallメソッドはProviderのcallメソッドよりもUriパラメータが1つ多いことがわかりますが、呼び出し元がcallメソッドを呼び出すと、どのProviderのcallメソッドを呼び出すかどうやって知るのでしょうか.
呼び出し元がcallメソッドを実行する場合,Uriマッチングに基づいてどのProviderのcallメソッドを実行するかである.マッチングルール:Uriのauthority.
Providerの登録は次のとおりです.
呼び出しは次のように使用できます.
context.getContentResolver().call(Uri.parse("content://jobdispatcher"), "hehe", null, null);
その中でuriが「content://jobdispatcher「最初からauthorityが「jobdispatcher」であると一致するこのProvider.