在未创建的全局流程中提供服务

时间:2015-10-15 09:57:48

标签: android android-activity android-service

我正在创建一个服务,并且将有多个应用程序与服务进行通信。所以我希望服务在全局进程中运行,即进程对任何应用程序都不是私有的。 以下是我的清单文件的内容。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.username.servicedemo" >

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service
        android:name="com.example.username.servicedemo.FirstService"
        android:process="com.example.username.servicedemo.remote"
        android:enabled="true"
        android:exported="true" >
    </service>
</application>

process下的service属性将创建一个全局流程。 问题是,当我尝试从按钮上的service开始activity时,点击onCreate service方法中的public void startService (View view) { int id = android.os.Process.myPid(); Log.i("MYTAG", " process id activity" + Integer.toString(id) ); Intent intent = new Intent(this,FirstService.class); intent.putExtra("key","1234"); ComponentName componentName = this.startService(intent); Log.i("MYTAG",componentName.toString()); } 方法。这是在按钮单击

上执行的代码

app-id.appspot.com -> mycustomdomain.com
www.mycustomdomain.com -> mycustomdomain.com

我在这里缺少什么?谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个愚蠢的错误。 service已正确创建。我正在检查onCreate方法中的日志,但过滤的日志仅显示在所选应用程序中。由于service在单独的进程中运行,因此来自service的日志未出现在logcat中。 我只是需要更改过滤器。在此处放置屏幕截图以防万一它可以帮助任何人。 enter image description here