0

我试图让一个程序在android的后台运行。我尝试了许多服务示例,但它对我来说变得更加复杂。
我正在尝试运行一个简单的应用程序,当我们翻转手机时它会静音(我知道存在内置功能,但是为了在手机背面静音时让手机静音,我们只需将手机放在它的“正面”上处于静音模式)。
我正在尝试做类似的事情,例如当我们将手机放入口袋时,磁场显示“y”“-num”中(在 num 中,我的意思是数字)。
但是当我们把手机倒过来时,它变成了"+num"
这是使手机静音并发出声音的代码:

package com.magnet2.com;

private SensorManager mSensorManager;
private Sensor mSensor;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}

@Override
protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}

  @Override
  protected void onPause() {
    super.onPause();
    mSensorManager.unregisterListener(this);
  }

@Override
public void onSensorChanged(SensorEvent event) {

    if (event.values[1] >= 29 )
    {

        ((AudioManager) getSystemService(AUDIO_SERVICE))
          .setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

    }
    if (event.values[1] <= -29 )
        if (event.values[2] >= -15 && event.values[2] <= 2 )
    {
        ((AudioManager) getSystemService(AUDIO_SERVICE))
        .setRingerMode(AudioManager.RINGER_MODE_NORMAL);
    }

  }

}  

但我不知道如何在后台运行它。

4

1 回答 1

0

对于像这样需要在continuously in the background没有用户交互的情况下完成的操作,服务类是最好的方法。

如果您是服务新手,这个问题将解决您的大部分疑问,在线教程只需 Google 搜索即可!

祝你好运!

于 2012-09-01T11:08:07.230 回答