Android小例子:让一个APP去启动另外一个APP

本文的主要任务是写两个Android APP,让其中的一个APP去启动另外一个APP。其中涉及的原理很简单,就是使用Android的四大组件之一BroadcastReceiver。让其中的一个APP静态注册广播接收器,让另外一个APP发送相应的广播。

本文的APP是基于Android Studio开发的。


一、注册广播接收器端的APP

1、实现一个广播接收器的类,让他继承至BroadcastReceiver,它的具体实现如下:

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

       Toast.makeText(context, intent.getStringExtra("TECH-PRO"), Toast.LENGTH_SHORT).show();

        /* 启动当前应用程序 */
        Intent myIntent = new Intent(context, MainActivity.class);
        myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(myIntent);
    }
}
类中重载了onReceive()方法,首先Toast一条从发送广播端发送过来的消息,然后通过Intent来启动当前的APP。
2、静态注册这个广播接收器

为了让我们这个广播一直处于可接收的状态,这里选择静态注册广播,在AndroidManifest.xml文件的application属性字段中添加如下字段:

 
            
                
            
        
以上就完成了注册广播接收器端的APP编写。


二、发送广播的APP

发送广播端的APP编写较为容易,主要就是实现广播的发送,注意发送广播的action要和静态注册广播的action保持一致。

首先定义一个Button用于执行发送操作,然后在这个按键总发送广播给广播接收器,具体实现如下:

button = (Button) findViewById(R.id.btnSend);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new  Intent();
                intent.setAction("cn.edu.syau.broadcastreceiver");
                intent.putExtra("TECH-PRO", "启动应用程序");
                sendBroadcast(intent);
            }
        });
至此,就完成了发送广播的APP。

把上面编写的两个APP都安装到手机或者模拟器当中,就可以实现一个APP启动另外一个APP的功能了。

你可能感兴趣的:(Android系统开发)