体育资讯网

您现在的位置是:首页 > 欧冠足球 > 正文

欧冠足球

启动别的app的服务(启动其他app)

hacker2022-07-02 06:04:22欧冠足球48
本文目录一览:1、如何让应用程序以服务形式启动2、如何实现跨应用启动Service

本文目录一览:

如何让应用程序以服务形式启动

服务运行于后台启动别的app的服务的应用程序启动别的app的服务,它旨在为系统用户提供相应的功能。

1.在“开始→运行”中键入“regedit.exe”,打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services”,在右侧窗格中显示的就是本机安装的服务项。

2.如果要新建服务,只须点击“编辑→新建→项”,然后为此项命名,如“test”;然后右击该项,选择“新建→字符串值”或“新建→dword值”即可。添加一个服务项目具体需要添加的键值如下启动别的app的服务

“DisplayName”,字符串值,对应服务名称;

“Description”,字符串值,对应服务描述;

“ImagePath”,字符串值,对应该服务程序所在的路径;

“ObjectName”,字符串值,值为“Localsystem”,表示本地登录;

“ErrorControl”,dword值,值为“1”;

“Start”,dword值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止;

“Type”,dword值,应用程序对应10,其它对应20。

3.还要在“test”项下新建一个“Enum”项。按照以上步骤添加qq程序为服务,重新启动计算机后,打开“服务”窗口,就可以看到刚才添加的qq服务。

4.如果要删除某项服务,只要删除注册表的中相关键值即可,本例中要删除qq服务,直接删除“HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\test”分支即可。

如何实现跨应用启动Service

跨应用启动Service需要注意的地方有2点:

1.目标service需要声明exported=true 的属性,表示允许其他应用访问该服务.

2.android5.0之前是可以通过设置隐式意图来跨应用打开Service的,5.0之后就必须要通过显示意图来开启Service.

如何创建跨应用的显示意图呢?

通过Intent的setComponent方法,可以传递一个ComponentName对象,该对象有一个接受2个参数的构造方法,第一参数传递目标Service所在的包名,第二个参数传递目标Service的完整类名.

Demo的结构:

本Demo是通过app2工程的App2Activity打开app工程的AppService服务.同时实现跨应用传递数据的功能

AppService代码:

[java] view plain copy

public class AppService extends Service {

public AppService() {

}

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

Log.i("AppService", "onCreate");

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

if (null != intent) {

Log.i("AppService", "onStartCommand接收到的数据是:" + intent.getStringExtra("data"));

}

return super.onStartCommand(intent, flags, startId);

}

@Override

public void onDestroy() {

super.onDestroy();

Log.i("AppService", "onDestroy");

}

}

清单文件配置:

[html] view plain copy

?xml version="1.0" encoding="utf-8"?

manifest xmlns:android=""

package="com.example.mchenys.aidlservicedemo"

application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme"

activity android:name=".MainActivity"

intent-filter

action android:name="android.intent.action.MAIN" /

category android:name="android.intent.category.LAUNCHER" /

/intent-filter

/activity

service

android:name=".AppService"

android:enabled="true"

android:exported="true" /

/application

/manifest

App2Activity代码:

[java] view plain copy

public class App2Activity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_app2);

//注意:android 5.0之前是可以通过隐式意图打开其他app的服务的,5.0之后只能通过显式意图来打开.

final Intent intent = new Intent();

//ComponentName的参数1:目标app的包名,参数2:目标app的Service完整类名

intent.setComponent(new ComponentName("com.example.mchenys.aidlservicedemo", "com.example.mchenys.aidlservicedemo.AppService"));

//打开目标AppService

findViewById(R.id.id_btn_start).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//设置要传送的数据

intent.putExtra("data", "Hello AppService,I am App2Activity");

startService(intent);

}

});

//关闭目标AppService

findViewById(R.id.id_btn_stop).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

stopService(intent);

}

});

}

}

布局文件的效果就是2个Button,分别用于开启目标服务和关闭目标服务

如何启用APP服务

方法如下:

1、开始〉设置〉控制面板〉管理工具〉服务〉

2、找到Application Layer Gateway Service右击〉属性〉启动类型〉自动

3、找到Application Management右击〉属性〉启动类型〉自动   

4、完成,重启计算机

如何一个app开启另一个app

开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);

startActivity(intent);

怎么解决app关联启动问题

若是vivo手机,可以按照以下方法进行操作:

1、Funtouch OS 3.0及以上系统关闭关联启动

进入设置--更多设置--权限管理--权限--自启动--关联启动,可将软件后的开关关闭,则该软件不会被其他软件带起。

2、Funtouch OS 3.0以下系统关闭关联启动

进入i管家--软件管理--自启动管理--关联启动界面,可将软件后的开关关闭,则该软件不会被其他软件带起。

发表评论

评论列表

  • 莣萳玖橘(2022-07-02 09:12:51)回复取消回复

    IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();Log.i("AppService",