1. 程式人生 > >android 實現一個app啟動另一個app的service服務

android 實現一個app啟動另一個app的service服務

首先我們建立兩個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就會不斷的輸出了這裡寫圖片描述