2012-09-01 140 views
0

我想在android.I中的后台运行一个程序,尝试了很多服务示例,但它对我来说变得更加复杂。
我试图运行一个简单的应用程序,其中Silents手机,当我们把它翻过来(我知道有一个建立功能存在,但对于沉默手机,当它在它回来,我们只是把手机放在它的“面对“,它处于静音模式)。
我想要做类似的事情,就像我们把手机放在口袋里的时候,磁场显示“y”“-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); 
    } 

    } 

} 

但我不知道怎么在后台运行它。

+0

你一定要运行一个'服务'。它不应该那么复杂。 –

回答

0

对于这样的地方有什么需要的操作做continuously in the background没有来自用户的交互,Service类是这样做的最佳方法。

如果您是服务新手,这question将解决您的疑惑,并且在线教程仅仅是谷歌搜索!

祝你好运!