码迷,mamicode.com
首页 > 移动开发 > 详细

android scheme机制

时间:2016-05-16 19:34:43      阅读:650      评论:0      收藏:0      [点我收藏+]

标签:

1、scheme机制

(1)被调用的程序:

定义scheme和action
<activity android:name=".Main" android:label="@string/app_name">
<intent-filter>
<action android:name="net.blogjava.mobile.MYACTION" />
<data android:scheme="info" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>


处理其他应用传递过来的信息
// 获得其他应用程序传递过来的数据
if (getIntent().getData() != null )
{
// 获得Host,也就是info://后面的内容
String host = getIntent().getData().getHost();
Bundle bundle = getIntent().getExtras();
// 其他的应用程序会传递过来一个value值,在该应用程序中需要获得这个值
String value = bundle.getString("value" );
……
}


(2)调用的方式:
// 需要使用Intent类的第2个参数指定Uri
Intent intent = new Intent("net.blogjava.mobile.MYACTION" , Uri
.parse("info://调用其他应用程序的Activity" ));
// 设置value属性值
intent.putExtra("value" , "调用成功" );
// 调用ActionActivity中的Main
startActivity(intent);


(3)调用方可以通过packageManager.queryIntentActivities来判断scheme是否有效
// Build the intent
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);

// Verify it resolves
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;

// Start an activity if it‘s safe
if (isIntentSafe) {
startActivity(mapIntent);
}


其他的进程间通信的机制:

Content Provider:对数据的增删改查。
Content Provider提供了一种在多个应用程序之间数据共享的方式(跨进程共享数据)。应用程序可以利用Content Provider完成下面的工作
1. 查询数据
2. 修改数据
3. 添加数据
4. 删除数据

Broadcast:向对方的进程发送消息。
广播(Broadcast)
广播是一种被动跨进程通讯的方式。当某个程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。这就象电台进行广播一样,听众只能被动地收听,而不能主动与电台进行沟通。

AIDL服务:通过后台进程的方式提供访问的接口,类似web service的方式,只不过AIDL服务的“web”是指本地的应用程序。
服务(Service)是android系统中非常重要的组件。Service可以脱离应用程序运行。也就是说,应用程序只起到一个启动Service的作用。一但Service被启动,就算应用程序关闭,Service仍然会在后台运行。

 

android scheme机制

标签:

原文地址:http://www.cnblogs.com/xbx2015/p/5498846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!