2012-09-01 138 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將解決您的疑惑,並且在線教程僅僅是谷歌搜索!

祝你好運!