欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Android 隐性Intent的例子,androidintent例子

来源: 开发者 投稿于  被查看 41765 次 评论:177

Android 隐性Intent的例子,androidintent例子


Android的Intent分为两大类,显性的(Explicit )的和隐性的(Implicit)。
显性的很简单就是我们常用的Activit跳转,他指明了从一个Activity跳转到另一个。

在SecondActivity这个配置中有一个intent-filter,其中它定义了action的名称。所谓的隐性Intent就是靠这个action的名称来传递。
代码如下:

1.显式

Intent i = new Intent(this,AnotherActivity.class);
startActivity(i);

2.Main.java

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class Main extends Activity {
private final String mapSearchIntent = "com.decarta.mapsearch.intent.action.SEARCH";

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri mapUri = Uri.parse("geo:39.906033,116.397700");
Intent i = new Intent(mapSearchIntent, mapUri);
i.setData(mapUri);
startActivity(i);
}
}

3.SecondActivity.java

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

/**
* @author Tony Shen
*/

public class SecondActivity extends Activity{
private Uri data;
private String action;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent.getAction() != null)
action = intent.getAction();
if (intent.getData()!=null)
data = intent.getData();
if (action.equals("com.decarta.mapsearch.intent.action.SEARCH")) {
Intent i = new Intent(Intent.ACTION_VIEW, data);
startActivity(i);
}
}
}

4.[XML]代码

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
<activity android:name=".Main" android:label="@string/app_name"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 
<activity android:name=".SecondActivity"> 
<intent-filter> 
<action android:name="com.decarta.mapsearch.intent.action.SEARCH" /> 
<category android:name="android.intent.category.DEFAULT" /> 
<data android:scheme="geo" /> 
</intent-filter> 
</activity> 
</application> 
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
<activity android:name=".Main" android:label="@string/app_name"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity>

<activity android:name=".SecondActivity"> 
<intent-filter> 
<action android:name="com.decarta.mapsearch.intent.action.SEARCH" /> 
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="geo" /> 
</intent-filter> 
</activity> 
</application>

用户评论