关闭

android 实现一个app启动另一个app的service服务

标签: android线程
6101人阅读 评论(1) 收藏 举报
分类:

首先我们创建两个android 工程 这里我们称被启动的app为甲,启动被启动的app为已,首先我们在甲 app类中new一个Myservice类 在类的onCreate函数中我们写一个匿名线程

public class MyService extends Service {
    private  boolean Runing=false;
    private  String Data=null;
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onCreate() {
        super.onCreate();

        Runing =true;
        new Thread(){
            @Override
            public void run() {
                super.run();
                while(Runing)
                {
                    System.out.println(Data);
                    try {
                        sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
            }
        }.start();

    }

        @Override
        public void onDestroy() {
        super.onDestroy();
        Runing =false;
    }
}

写完之后 我们把这个app 启动 安装到手机上面
然后我们打开乙app


public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;    @Override
    Intent intent = new Intent();
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn_startAnotherApp).setOnClickListener(this);
        findViewById(R.id.btn_stopAnotherApp).setOnClickListener(this);
        intent.setComponent(new ComponentName("com.example.blue.anotherapp","com.example.blue.anotherapp.MyService"));//设置一个组件名称  同组件名来启动所需要启动Service


    }


    @Override
    public void onClick(View v) {

        switch (v.getId())
        {
            case R.id.btn_startAnotherApp:
                startService(intent);
                break;
            case R.id.btn_stopAnotherApp :
                stopService(intent);
                break;
        }
    }
}

在这里我们声明了一个intent 这个指明了一个组件大家都知道启动一个Service可以用intent 这里我们声明的intent可以指明我们要启动的app 这里声明的第一个字符串为 app 甲的包名地址 第二个为甲app中的Service类的地址

当我们启动时就点击启动按钮 甲app就会不断的输出了这里写图片描述

5
0
查看评论

在一个app中启动另外一个app的service

例如:appA要启动appB中的service 步骤一: appB中service的声明,如图 <service android:name="com.appb.BService" android:exported="true&qu...
  • u010775335
  • u010775335
  • 2017-06-28 15:12
  • 592

Android -- 跨应用绑定service并通信

之前记录过跨应用绑定service:http://blog.csdn.net/gaopeng0071/article/details/46049929,那么绑定后如何进行通信呢,下面我们就来学习下。第一步, 需要修改service1项目中aidl,增加一个方法。package com.exampl...
  • u010926176
  • u010926176
  • 2015-05-28 17:46
  • 1602

一个APK里启动外部APK或者外部APK的一个服务

来自:http://blog.csdn.net/xuxinyl/article/details/6038934 Intent inte=new Intent(); ComponentName com=new ComponentName("com.kld",&q...
  • chenyefei
  • chenyefei
  • 2017-02-08 10:56
  • 504

android—如何添加一个系统服务

c中添加service java添加service前面分析过binder的实现流程,binder的实现包含了java和c++两部分,那么应该如何去添加一个service? c++中添加service下面以SurfaceComposer这个service为例, ① 首先提供接口文件ISurface...
  • lewif
  • lewif
  • 2016-02-18 17:33
  • 2152

Android5.1 FrameWork添加自己的SystemService提供API给APP

FrameWork从纵向来看主要就是添加Service并且利用JNI调用HAL层C/C++的代码来实现提供API给APP操作硬件的目的    本文就是描述在Android5.1如何实现添加自己的System Service来实现跟HAL进行Socket通信
  • szqsdq
  • szqsdq
  • 2016-10-31 11:23
  • 1645

如何实现跨应用启动Service

跨应用启动Service需要注意的地方有2点: 1.目标service需要声明exported=true 的属性,表示允许其他应用访问该服务. 2.android5.0之前是可以通过设置隐式意图来跨应用打开Service的,5.0之后就必须要通过显示意图来开启Service. 如何创建跨应用的显示...
  • mChenys
  • mChenys
  • 2015-11-01 23:03
  • 5655

Android 工程展示一个Activity 调用另一个app里的 Activity 和 Service

  • 2010-08-05 10:28
  • 881KB
  • 下载

Android service 不被杀死“永不退出的服务”(双进程,服务,多进程,微信)

本文解析了微信的服务为什么不被杀掉,以及服务应该怎样设计才合理,制作一个不死的服务到底可能吗?,以及是否真的需要一个不死的服务。
  • robert_cysy
  • robert_cysy
  • 2016-12-21 20:24
  • 8569

Android -- 跨应用启动Service

本章博客,记录的是跨应用启动Service。 我们需要创建一个应用service1,其中包含一个MyService,部分代码如下: @Override public void onCreate() { // TODO Auto-generated method stu...
  • u010926176
  • u010926176
  • 2015-05-27 16:08
  • 1224

Android使用Intent启动Service的Intent必须是显式的

今天使用Intent来启动Service时,代码如下: //为 Intent设置Action属性 intent.setAction("com.hust.service"); start.setOnClickListener(new OnCli...
  • tuke_tuke
  • tuke_tuke
  • 2016-01-25 15:39
  • 3791
    个人资料
    • 访问:112940次
    • 积分:1393
    • 等级:
    • 排名:千里之外
    • 原创:41篇
    • 转载:3篇
    • 译文:0篇
    • 评论:32条
    博客专栏
    最新评论