Java 从另一个文件向服务调用类
我有一个类Accelerator.java从传感器获取数据,我可以在MainActivity中调用它,它可以工作。但为了使应用程序在后台运行,我构建了一个服务,现在我想在这里调用我的传感器类。但是我的IDE(android studio)无法看到类的方法,因为它可以完美地用于MainActivity 多谢各位 javaJava 从另一个文件向服务调用类,java,android,Java,Android,我有一个类Accelerator.java从传感器获取数据,我可以在MainActivity中调用它,它可以工作。但为了使应用程序在后台运行,我构建了一个服务,现在我想在这里调用我的传感器类。但是我的IDE(android studio)无法看到类的方法,因为它可以完美地用于MainActivity 多谢各位 java package com.example.pahoappv2; import android.content.Context; import android.hardware.S
package com.example.pahoappv2;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class Accelerometer {
public interface Listener {
void onTranslation(float tx,float ty,float tz);
}
private Listener listener;
public void setListener(Listener l){
listener = l;
}
private SensorManager sensorManager;
private Sensor sensor;
private SensorEventListener sensorEventListener;
Accelerometer(Context context){
sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
if(sensor==null) System.out.println("sensor not found"); //debug message
sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if(listener!=null) {
listener.onTranslation(sensorEvent.values[0],sensorEvent.values[1],sensorEvent.values[2]);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
}
public void register(){
sensorManager.registerListener(sensorEventListener,sensor,SensorManager.SENSOR_DELAY_NORMAL);
}
public void unregister(){
sensorManager.unregisterListener(sensorEventListener);
}
}
MainActivity.java(正确运行代码)
ExampleService.java
public class ExampleService extends Service {
Accelerometer accelerometer; //working
accelerometer = new Accelerometer(this); //working
accelerometer.setListener( //IDE cant see setListener method
new Accelerometer.Listener() {
@Override
public void onTranslation(float tx, float ty, float tz) {
//get data
}
});
...
...
...
}
您必须在onCreate内部调用它,onStart命令
public class ExampleService extends Service {
@Override
public void onCreate() {
super.onCreate();
Accelerometer accelerometer; //working
accelerometer = new Accelerometer(this); //working
accelerometer.setListener(
new Accelerometer.Listener() {
@Override
public void onTranslation(float tx, float ty, float tz) {
//get data
}
});
}
...
...
...
}您必须在onCreate内部调用它,onStart命令
public class ExampleService extends Service {
@Override
public void onCreate() {
super.onCreate();
Accelerometer accelerometer; //working
accelerometer = new Accelerometer(this); //working
accelerometer.setListener(
new Accelerometer.Listener() {
@Override
public void onTranslation(float tx, float ty, float tz) {
//get data
}
});
}
...
...
...
}非常感谢它的工作,但我想知道为什么我需要在onCreate或onStart命令中调用外部类。您可以在此处看到更多信息。非常感谢它的工作,但我想知道为什么我需要在onCreate或onStart命令中调用外部类。您可以在此处看到更多信息