2015-05-29 68 views
0
public class MainActivity extends Activity implements OnClickListener { 
    Button start,stop; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     start=(Button) findViewById(R.id.button1); 
     stop=(Button) findViewById(R.id.button2); 
     start.setOnClickListener(this); 
     stop.setOnClickListener(this); 

     TelecomManager tm=(TelecomManager) getSystemService(TELEPHONY_SERVICE); 


    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent i=new Intent(this,MyService.class); 
     if(v.getId()==R.id.button1) { 
     startService(i); 
     } else if(v.getId()==R.id.button2) { 
      stopService(i); 
     } 
    } 
} 

MyService.java如何調用期間暫停背景音樂

public class MyService extends Service { 
    MediaPlayer player; 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 
     player=MediaPlayer.create(this, R.raw.song1); 
    } 

    @Override 
    @Deprecated 
    public void onStart(Intent intent, int startId) { 
     // TODO Auto-generated method stub 
     player.start(); 
     super.onStart(intent, startId); 
    } 

    @Override 
    public void onDestroy() { 
     if (!(player == null)) { 
      if (player.isPlaying()) { 
       player.stop(); 
       player.release(); 
       player = null; 
      } 
     } 
+0

你的代碼示例是不完整的,你在最後缺少至少兩個'}'。 – mmgross

回答

3

在你的服務,你可以註冊一個PhoneStateListener通過TelephonyManager.listen(PhoneStateListener, int)

但由於接口是相當大的,你也可以只註冊一個BroadcastReceiver在您的服務中

IntentFilter phoneStateFilter = new IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED); 
    registerReceiver(phoneStateReceiver, phoneStateFilter); 

在您的廣播接收器你檢查手機狀態

String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE); 
+0

我們是否需要使用TelephonyManager的特殊權限? – AnujDeo