2013-06-24 46 views
0

我是android開發人員新手。我用3個按鈕播放,暫停,停止音樂播放器。當我點擊應用程序圖標飛濺將運行,3秒後它出去,當我點擊播放支付歌曲其他按鈕完美的作品。但是,如果我播放音樂並返回到主屏幕音樂將播放,但如果我再次點擊應用程序圖標,它將啓動它的一個新實例,如果點擊播放按鈕它將開始另一首歌曲意味着2首歌曲正在運行。Android不會停止播放音樂,也不會在應用圖標上繼續播放

另一個問題是,當我接到電話時,我的歌曲會恢復,當我選擇電話時,它仍然在如何解決這些問題。

我播放音樂代碼

MediaPlayer mySong; 
    Button playButton,pauseButton,stopButton,creditsButton; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activitymain); 

     playButton=(Button) findViewById(R.id.play); 
     pauseButton=(Button) findViewById(R.id.pause); 
     stopButton=(Button) findViewById(R.id.stop); 
     creditsButton=(Button) findViewById(R.id.credit); 
     mySong=MediaPlayer.create(StartingPoint.this, R.raw.song); 

     playButton.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       mySong.start(); 
      }; 
     }); 

pauseButton.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       mySong.pause(); 
      }; 
     }); 
stopButton.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     mySong.pause(); 
     mySong.seekTo(0); 
    }; 
}); 

我的清單文件是

<uses-sdk 
     android:minSdkVersion="9" 
     android:targetSdkVersion="9" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
     > 
     <activity 
      android:name="com.simplyitsols.hanumanchalisa.Splash" 
      android:label="@string/app_name" 
      > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.simplyitsols.hanumanchalisa.StartingPoint" 
      android:label="@string/app_name" 
      android:launchMode="singleTask"> 
      <intent-filter> 
       <action android:name="com.simplyitsols.hanumanchalisa.STARTINGPOINT" /> 
       <category android:name="android.intent.category.Default" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.simplyitsols.hanumanchalisa.Credits" 
      android:label="@string/app_name" > 
     </activity> 
    </application> 
+0

你需要返回到主屏幕和來電停止音樂? –

+0

在這兩種條件音樂運行.... 1.如果我的應用程序在頂部或運行或其在後臺運行。 – Vivek

回答

2

你必須創建一個服務:http://developer.android.com/reference/android/app/Service.html

後你已經實現了,你必須實施onPause和onResume你的活動,以做你想做的事情。 當您返回家中或您收到來電時會觸發onPause。的onResume是自我解釋:)

http://developer.android.com/guide/components/fundamentals.html

+0

但是告訴我們是否讓音樂放在一邊比我還有一個問題,如果我的應用程序正在運行並且歌曲正在播放。現在我點擊回到主屏​​幕。現在當我再次點擊應用程序圖標時,它會啓動一個全新的應用程序,而不是後臺應用程序,因爲我使用的模式爲singleTask – Vivek

+0

嘗試singleInstance(http://developer.android.com/guide/topics/manifest/activity- element.html) –

0

你回擊之前,通過調用完成清除棧()和殺死你當前活動。並且爲了生成新實例,請檢查歌曲是否正在播放。

if(isSongPlaying==true) 
    { 
     //do not start 
     } 
    else 
    { 
     //start playing 
     } 
+0

如果我完成該活動,它將不會在後臺工作。音樂將停止 – Vivek