android view 移动另一个activity,Android开发中怎么启动另一个应用中的Activity

Android开发中怎么启动另一个应用中的Activity

发布时间:2020-12-03 16:48:09

来源:亿速云

阅读:129

作者:Leah

这篇文章将为大家详细讲解有关Android开发中怎么启动另一个应用中的Activity,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Android 启动另一个App/apk中的Activity

前言:

Android提供了在一个App中启动另一个App中的Activity的能力,这使我们的程序很容易就可以调用其他程序的功能,从而就丰富了我们App的功能。比如在微信中发送一个位置信息,对方可以点击这个位置信息启动腾讯地图并导航。这个场景在现实中作用很大,尤其是朋友在陌生的环境找不到对方时,这个功能简直就是救星。

本来想把本文的名字叫启动另一个进程中的Activity,觉得这样才有逼格。因为每个App都会运行在自己的虚拟机中,每个虚拟机跑在一个进程中。但仔细一想,能够称为一个进程,前提是这个App必须要运行起来才行。而Android提供的能力,是不需要另一个App启动就可以将其特定的Activity启动起来的。

我们有至少两种办法达到启动另一个App中的Activity,

第一种用action启动,详情见我之前的文章《启动自己另一个程序的activity》。

第二种用intent设置className或component的办法启动。

举例如下。新建两个项目ProjectA和ProjectB,用B中的MainActivity启动A的MainActivitity。关键代码如下:

ProjectB MainActivity

public void OnStartActivityClicked(View view) {

Intent intent = new Intent(Intent.ACTION_VIEW);

String packageName = "com.lazytech.projecta";

String className = "com.lazytech.projecta.MainActivity";

intent.setClassName(packageName, className);

//second method

// intent.setComponent(new ComponentName(

// "com.lazytech.projecta",

// "com.lazytech.projecta.MainActivity"

// ));

Bundle bundle = new Bundle();

bundle.putString("msg", "this message is from project B ");

intent.putExtras(bundle);

intent.putExtra("pid", android.os.Process.myPid());

startActivityForResult(intent, 1);

// startActivity(intent);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (requestCode) {

case 1:

if(resultCode == RESULT_OK) {

textView.setText(data.getStringExtra("result"));

}

break;

}

}

ProjectA MainActivity

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textView = (TextView)findViewById(R.id.text);

Intent intent = getIntent();

if(intent != null) {

textView.setText(intent.getStringExtra("msg"));

}

}

public void OnSendResult(View view) {

Intent intent = new Intent();

intent.putExtra("result","OK! from project a.");

this.setResult(RESULT_OK,intent);

this.finish();

}

关于Android开发中怎么启动另一个应用中的Activity就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值