Android:onNewIntentの使用
2174 ワード
一、onNewIntent(Intent intent)メソッドこのメソッドはactivityの保護タイプのメソッドであり、既存のActivityを利用して他のIntentを処理する場合、onNewIntentを利用して処理することができ、通常は検索要求のあるactivityで使用され、そのactivityにはいくつかのintent-filterがあり、このメソッドが呼び出される前提a、このactivityは、android:launchMode=「singleTop」というプロパティを設定します.b、activityはすでにスタックの先端にあり、他の方法でacitvityを再起動したときに検索などに呼び出され、oncreate()メソッドは呼び出されません.この例ではonNewIntent(Intent intent)はすべてのIntentを処理するために使用され、oncreate()メソッドではonNewIntent(getIntent()が呼び出されたと考えられる.
二、URIデータマッチング1つのIntentはURIを通じて外部データをターゲットコンポーネントに携帯することができる.ノードでは、ノードを介して外部データが一致します.mimeTypeプロパティは、外部データを運ぶデータ型を指定し、schemeはプロトコルを指定し、host、port、pathはデータの位置、ポート、パスを指定します.次のようになります.
Intent Filterでこれらの属性が指定されている場合、URIデータの一致はすべての属性が一致した場合にのみ成功します.この例ではString.format("$1", WIKI_AUTHORITY, WIKI_LOOKUP_HOST)));リンクを
01.public void onNewIntent(Intent intent) {
02. final String action = intent.getAction();
03. if (Intent.ACTION_SEARCH.equals(action)) {
04. // Start query for incoming search request
05. String query = intent.getStringExtra(SearchManager.QUERY);
06. startNavigating(query, true);
07.
08. } else if (Intent.ACTION_VIEW.equals(action)) {
09. // Treat as internal link only if valid Uri and host matches
10. Uri data = intent.getData();
11. if (data != null && ExtendedWikiHelper.WIKI_LOOKUP_HOST
12. .equals(data.getHost())) {
13. String query = data.getPathSegments().get(0);
14. startNavigating(query, true);
15. }
16. } else {
17. // If not recognized, then start showing random word
18. startNavigating(null, true);
19. }
20. }
二、URIデータマッチング1つのIntentはURIを通じて外部データをターゲットコンポーネントに携帯することができる.
<data android:mimeType="mimeType" android:scheme="scheme"
android:host="host" android:port="port" android:path="path"/>
Intent Filterでこれらの属性が指定されている場合、URIデータの一致はすべての属性が一致した場合にのみ成功します.この例ではString.format("$1", WIKI_AUTHORITY, WIKI_LOOKUP_HOST)));リンクを