两个不同项目之间的跳转,自定义action

一:无需传参的供应其他应用调用

第一种方法:这种方法在手机的应用程序界面是看不到被调用的应用的,

在AndroidManifest.xml中被调用的Activity的节点下自定义Action,在调用方使用Intent(String action)构造方法调用

注意:两个Activity可以属于不同的应用

例如:被调用方的AndroidManifest.xml

<activity
            android:name="com.sym.second.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                
				<action android:name="com.sym.myaction"/>
				<category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

调用方调用:

btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				try {
					Intent intent = new Intent("com.sym.myaction");
					startActivity(intent);
				} catch (Exception e) {
					Toast.makeText(MainActivity.this, "该界面不存在!", Toast.LENGTH_LONG).show();
				}
			}      
		});

第二种方法:这种方法在手机的应用程序界面是看得到被调用的应用的

例如:被调用方的AndroidManifest.xml

<activity
            android:name="com.sym.second.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

调用方调用:

ComponentName componetName = new ComponentName(
			// 这个是另外一个应用程序的包名
					"com.chartcross.test",
					// 这个参数是要启动的Activity
					"com.chartcross.test.MainActivity");
			Intent intent = new Intent();
			intent.setComponent(componetName);
			startActivity(intent);


 

二:需要传参的供应其他应用调用

例如:被调用方的AndroidManifest.xml

<activity
            android:name="com.sym.second.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                
				<action android:name="com.sym.myaction"/>
				<data android:scheme="my"/>
				<category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>


 

调用方调用:

btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				try {
					Uri uri = Uri.parse("my://传递值:您好!");
					Intent intent = new Intent("com.sym.myaction", uri);
					startActivity(intent);
				} catch (Exception e) {
					Toast.makeText(MainActivity.this, "该界面不存在!", Toast.LENGTH_LONG).show();
				}
			}      
		});


在被调用方的接收传递过来的参数:

 

Uri uri = getIntent().getData();
		String str = uri.getHost();
		tv.setText(str);

这样str的值就为:传递值:您好!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值