在Android活动中启动服务,但什么也没发生
MainActivity.java在Android活动中启动服务,但什么也没发生,android,android-studio,service,Android,Android Studio,Service,MainActivity.java package com.mxyue.www.testdemo; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; public class MainActivity extends AppCompatActivity { @Overrid
package com.mxyue.www.testdemo;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("DemoLog", "beforetest startService");
Intent intent1 = new Intent(MainActivity.this, TestService.class);
startService(intent1);
//stop Service
Intent intent4 = new Intent(this,TestService.class);
stopService(intent4);
//restart Service
Intent intent5 = new Intent(this,TestService.class);
startService(intent5);
Log.i("DemoLog", "aftertest startService");
}
}
TestService.java
package com.mxyue.www.testdemo;
/**
* Created by mxyue on 2017/8/13.
*/
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class TestService extends Service{
@Override
public void onCreate(){
Log.i("DemoLog","TestService -> onCreate, Thread ID:"+Thread.currentThread().getId());
super.onCreate();
}
@Override
public int onStartCommand(Intent intent,int flags,int startId){
Log.i("DemoLog","TestService -> onStartCommand, startId: "+startId+",Thread ID: "+Thread.currentThread().getId());
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent){
Log.i("DemoLog","TestService -> onBind, Thread ID: "+Thread.currentThread().getId());
return null;
}
@Override
public void onDestroy(){
Log.i("DemoLog","TestService -> onDestroy, Thread ID: "+Thread.currentThread().getId());
super.onDestroy();
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mxyue.www.testdemo">
<application>
...
</application>
<service android:name="com.mxyue.www.testdemo.TestService"></service>
</manifest>
...
未调用onstart命令,没有错误日志
一些原木
- 08-13 05:51:34.935 2885-2885/?W/System:类加载器引用了未知路径:/data/app/com.mxyue.www.testdemo-1/lib/x86
- 08-13 05:51:34.937 2885-2885/?I/InstantRun:启动即时运行服务器:是主进程
- 08-13 05:51:34.982 2885-2885/?W/art:Android 4.1之前的Android.graphics.PorterDuffColorFilter方法Android.support.graphics.drawable.VectorDrawableCompat.UpdatentFilter(Android.graphics.PorterDuffColorFilter,Android.content.res.ColorStateList,Android.graphics.PorterDuff$模式)将错误地重写android.graphics.drawable.drawable中的包私有方法
- 08-13 05:51:35.183 2885-2885/?I/DemoLog:在测试启动服务之前
- 08-13 05:51:35.187 2885-2885/?I/DemoLog:最新启动服务
- 08-13 05:51:35.490 2885-2937/com.mxyue.www.testdemo I/OpenGLRenderer:初始化EGL,版本1.4
- 08-13 05:51:35.548 2885-2937/com.mxyue.www.testdemo W/EGL_仿真:未实现eglSurfaceAttrib
类
TestService
的包是package com.mxyue.www.testdemo
。在清单中也使用相同的代码:
类TestService
的包是package com.mxyue.www.testdemo
。在清单中也使用相同的方法:
服务的类位于与清单中指定的不同的包中。谢谢@orip我在这个问题中写了一个错误。我的代码是正确的,但不起作用。请尝试显式设置包:intent.setPackage(this.getPackageName())代码>我添加了“intent1.setPackage(this.getPackageName());”在“Intent intent1=new Intent(MainActivity.this,TestService.class);”没有发生任何事情。该服务的类位于与清单中指定的不同的包中。谢谢@orip我只是在这个问题中写了一个错误。我的代码是正确的,但不起作用。请尝试显式设置包:intent.setPackage(this.getPackageName())代码>我添加了“intent1.setPackage(this.getPackageName());”在“Intent intent1=new Intent(MainActivity.this,TestService.class);”没什么事,对不起!我已经试过很多次了。当我写问题时,我在清单中丢失了“testdemo”。结果是没有改变,仍然没有启动服务。我编辑了此错误的问题。对不起!我已经试过很多次了。当我写问题时,我在清单中丢失了“testdemo”。结果是没有改变,仍然没有启动服务。我编辑了这个错误的问题。