Android Intenet的思考(1)

Intent有两种调用方法,一种是显示调用。一种是隐式调用。

1. 显示调用,也就是我们最常用的。

使用的Intent构造函数如下: Intent(Context packageContext, Class<?> cls)

在同一个进程中,一个Activity 调用另外一个Activity 。

 

  
  
  
  
  1. Intent intent = new Intent(this, TestActivity.class);  
  2.    
  3. startActivity(intent);  

当然我们也可以在不同应用程序之间,也就是不同的进程之间启动Activity。

使用的Intent 构造函数:Intent(Context packageContext, Class<?> cls) 第一个是包名,第二个时Activity类名

  
  
  
  
  1. Intent intent = new Intent();  
  2.  intent.setClassName("com.androidtest", "com.androidtest.AndroidTest");  
  3.  main.this.startActivity(intent);  

这时候一定要修改AndroidManifest.xml 文件

在 activity 的 申明中加上<intent-filter> 如下:

  
  
  
  
  1. <activity android:name=".TestActivity"> 
  2.  
  3.       <intent-filter> 
  4.  
  5.           <action android:name="android.intent.action.DEFAULT" /> 
  6.  
  7.       </intent-filter> 
  8.  
  9.   </activity> 

2. 隐式调用

比如我们调用打电话的Activity。就要使用隐式调用了: Intent(String action); 代码如下:

  
  
  
  
  1. Intent intent = new Intent(Intent.ACTION_DIAL);  
  2. startActivity(intent);   

这种使用方式看上去比较奇怪,Intent的发送者只是指定了Action为Intent.ACTION_DIAL,那么怎么找到接收者呢?

我们自己的程序能不能接受这个Intent呢?答案是可以的,修改程序的Intent-fliter 加上这几句话变可。如:

  
  
  
  
  1. <activity android:name=".TestActivity"> 
  2. <intent-filter> 
  3. <action android:name="android.intent.action.DEFAULT" /> 
  4. <action android:name="android.intent.action.DIAL" /> 
  5. <category android:name="android.intent.category.DEFAULT" /> 
  6. </intent-filter> 
  7. </activity>   

这样我们的程序也能接收该Intent了。当两个程序都能接收此Intent时,Android会自动弹出对话框让你进行选择。

本文出自 “最牛傻蛋的博客” 博客,转载请与作者联系!

你可能感兴趣的:(android,移动开发,思考,休闲,Intenet)