Android 一个app启动另一个app

来源:互联网 发布:php采集器 代码 编辑:程序博客网 时间:2024/06/06 08:52
最近,一个app启动另一个app,这个玩法挺火的嘛,有没有试过更新QQ到5.1版本,QQ的健康里面就可以添加其他app,实现从QQ跳转到其他app应用。这个挺好玩的,一下子带来了多少流量啊。

 

一、先来几行代码,一个app启动另一个app

 

 

// 通过包名获取要跳转的app,创建intent对象

Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.liuxiang");

// 这里如果intent为空,就说名没有安装要跳转的应用嘛

if (intent != null) {

    // 这里跟Activity传递参数一样的嘛,不要担心怎么传递参数,还有接收参数也是跟Activity和Activity传参数一样

    intent.putExtra("name", "Liu xiang");

    intent.putExtra("birthday", "1983-7-13");

    startActivity(intent);

} else {

    // 没有安装要跳转的app应用,提醒一下

    Toast.makeText(getApplicationContext(), "哟,赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show();

}

  

 

这里或许网上有很多类似代码,还是提一下,让大家知道流程。

 

二、被启动的app如何获取参数呢?

 

public class MainActivity extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        Intent intent = getIntent();

        Bundle bundle = intent.getExtras();

        if (bundle != null) {

            String name = bundle.getString("name");

            String birthday = bundle.getString("birthday");

            if (name != null && birthday != null) {

                Toast.makeText(getApplicationContext(), "name:" + name + " birthday:" + birthday, Toast.LENGTH_SHORT).show();

            }

        }

    }

}

在被打开的app应用,也是简单地几行代码可以接收到传过来的参数信息。这里的bundle如果为空,就说明不是跳转过来的,可能是用户收到点击桌面图标打开app,这样肯定就没有参数值啦。赶紧玩玩吧。

 

等等,,,别以为,就这样完了,还有更重要的在后面呢:怎么保证没次跳转都能接收到参数呢,这个要考虑下了。

 

三、遇到的问题:无法每次跳转都拿到参数,这是为什么呢?

 

经过研究,必须每次都要打开启动的Activity才能接收到,因为传递过来的参数就是送到启动的Activity(android.intent.action.MAIN),在其他Activity怎么能拿到参数数据。所以必须每次跳转过来都要第一个打开启动的Activity,这是一种解决方法。

 

为了保证被打开app每次都进入启动的Activity,这里写一个欢迎页面(WellcomeActivity)

 

public class WellcomeActivity extends Activity {

    private final static int MSG_200 = 200;

     

    Handler mHandler = new Handler() {

        @Override

        public void handleMessage(Message msg) {

            switch (msg.what) {

            case MSG_200:

                Intent intent = new Intent(WellcomeActivity.this, MainActivity.class);

                startActivity(intent);

                finish();

                break;

 

            default:

                break;

            }

        }

    };

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_wellcome);

         

        Intent intent = getIntent();

        Bundle bundle = intent.getExtras();

        if (bundle != null) {

            String name = bundle.getString("name");

            String birthday = bundle.getString("birthday");

            if (name != null && birthday != null) {

                Toast.makeText(getApplicationContext(), "name:" + name + "    birthday:" + birthday, Toast.LENGTH_SHORT).show();

                TextView t = (TextView)findViewById(R.id.tv_wellcome);

                t.setText("name:" + name + "    birthday:" + birthday);

            }

        }

         

        mHandler.sendEmptyMessageDelayed(MSG_200, 3000);

         

    }

 

    @Override

    public void onBackPressed() {

    }

}

这里每次都可以拿到参数了,可以做自己想做的事情了,可以保存到ShareMamager或者数据库,做相应地操作。

 

然后再进入Activity (MainActivity)

 

 

public class MainActivity extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

         

         

    }

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 第一试用网登录密码忘了怎么办 微博登录直播间帐号被锁定怎么办 硫酸不小心弄到皮肤上怎么办 小米平板进水了开不了机怎么办 U盘被弹出后再插没有显示怎么办 视频从U盘传下来不能播放怎么办 微博账号忘了登录名怎么办 迅雷应版权方要求无法下载怎么办? 微信账号忘记密码上面有钱怎么办 蘑菇街账号忘记了里面有钱怎么办 手机注册的百度云帐号换号怎么办 网易云音乐sd卡写入失败怎么办? 玩客云涌u盘满了怎么办 手机安装杜比音效失败死机该怎么办 网易云音乐下载额度用完了怎么办 苹果手机付费app连续扣费怎么办 oppoO粉卡的流量用没了怎么办 qq邮箱里的文件过期了怎么办 163邮箱里的文件过期了怎么办 做人事的给员工漏交社保了怎么办 公司漏交了员工一个月的社保怎么办 小米4c能充电不能开机怎么办 小米手机关机开不开机该怎么办 小米5s关机开不开机怎么办 老板跑路了员工社保还挂着怎么办 红米5连wifi很慢怎么办 电脑百度网盘下载速度慢怎么办 新手机与旧手机同步了怎么办 百度网盘2t满了怎么办 魅族手机相册的密码忘了怎么办 手机百度网盘本地空间不足怎么办 百度网盘保存视频内存不够怎么办 别人的百度网盘链接打不开怎么办 百度网盘视频插件升级失败怎么办 退苹果id重新登陆照片没了怎么办 苹果升级后照片效果没了怎么办 360云盘个人云盘停止服务怎么办 小米手机账号掉了手机卡没了怎么办 百度网盘下载后不能注册怎么办 微信发出的文件无法撤回怎么办 微信群发错消息无法撤回怎么办