2012-04-16 10 views
1

내 mainActivity (메뉴)에서 SoundActivity 클래스로 이동할 수 있습니다. 그러나 장치를 다시 버튼을 클릭하면 내 mainActivity로 돌아 가지 않습니다. 대신 응용 프로그램을 닫습니다. 끝 부분에 finish()를 넣었지만 작동하지 않는 것 같습니다. 나는 또한 super.backPressed() 시도하고 그 중 하나를 작동하지 않았습니다. 누군가가 나를 도울 수 있다면이 사운드 클래스활동으로 돌아 가기

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.ToggleButton; 

public class SoundActivity extends Activity 
    { 
MediaPlayer ourSong; 

private SeekBar volumeSeekbar = null; 
private ToggleButton muteButton = null; 
private AudioManager audioManager = null; 

private AudioManager mAm; 
private boolean mIsMute; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{  
    // TODO Auto-generated method stub  
    super.onCreate(savedInstanceState); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    setContentView(R.layout.soundmenu); 
    initControls(); 


    ourSong = MediaPlayer.create(SoundActivity.this, R.raw.beat2); 
    ourSong.start(); 

} 



private void initControls() 
{ 
    try 
    { 
     volumeSeekbar = (SeekBar)findViewById(R.id.sbVolumeBar); 
     audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
     volumeSeekbar.setMax(audioManager 
       .getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
     volumeSeekbar.setProgress(audioManager 
       .getStreamVolume(AudioManager.STREAM_MUSIC)); 



     volumeSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
     { 
      public void onStopTrackingTouch(SeekBar arg0) 
      { 
      } 

      public void onStartTrackingTouch(SeekBar arg0) 
      { 
      } 

      public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
      { 
       audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 
         progress, 0); 
      } 
     }); 

     muteButton = (ToggleButton)findViewById(R.id.toggleButton1); 
     muteButton.setOnClickListener(new View.OnClickListener() 
     { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      if(muteButton.isChecked()) 
      { 
       AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
        am.setStreamMute(AudioManager.STREAM_MUSIC, true); 
      } 
      else 
      { 
       AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
        am.setStreamMute(AudioManager.STREAM_MUSIC, false); 
      } 
     } 
     }); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 



@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 

    } 
} 

코드입니다 정말 감사 드리겠습니다. 여기에 사운드 활동을

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ToggleButton; 
import android.os.Bundle; 

public class PinballShooterActivity extends Activity { 
/** Called when the activity is first created. */ 
MediaPlayer ourSong; 

private ToggleButton muteButton = null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 



    ourSong = MediaPlayer.create(PinballShooterActivity.this, R.raw.beat2); 
    ourSong.start(); 

    Button soundBtn = (Button) findViewById(R.id.sound); 
    soundBtn.setOnClickListener(new View.OnClickListener() { 



    public void onClick(View v) { 
     // TODO Auto-generated method stub    
     startActivity(new Intent(PinballShooterActivity.this, SoundActivity.class));   
     }  
    }); 

    Button highScrBtn = (Button) findViewById(R.id.highscores); 
    highScrBtn.setOnClickListener(new View.OnClickListener() { 



    public void onClick(View v) { 
     // TODO Auto-generated method stub    
     startActivity(new Intent(PinballShooterActivity.this, HighScoreActivity.class));   
     }  
    }); 

    Button gameBtn = (Button) findViewById(R.id.startgame); 
    gameBtn.setOnClickListener(new View.OnClickListener() { 


     public void onClick(View v) { 
     // TODO Auto-generated method stub    
     startActivity(new Intent(PinballShooterActivity.this, GameActivity.class));   
     }  
    }); 
} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 
    } 
} 

를 시작하고 mainActivity는 안드로이드 매니페스트

<uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".SoundActivity" /> 
     <activity 
      android:name=".HighScoreActivity" /> 
     <activity 
      android:name=".GameActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.pinball.shooter.GAMEACTIVITY" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      </activity> 
     <activity 
      android:name=".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=".PinballShooterActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action   android:name="com.pinball.shooter.faiz.PINBALLSHOOTERACTIVITY"/> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

+5

SoundActivity 클래스와 관련이 없으며 SoundActivity가 시작된 방법과 관련이 있습니다. 우리에게 MainActivity와 아마도 당신의 매니 페스트를 보여주세요. 아마 우리는 더 잘 할 수 있습니다 :) – JRaymond

+2

finish(); 당신의 활동이 onPause에서 어쨌든하고 있습니다. 잠시 멈춤 – Blundell

+0

는 여전히 작동하지 않았습니다. – akkki

답변

2

이하 U를 보여으로 onBackPressed() 메소드를 사용하고 몇 줄의 코드를 사용해야하는 문제가 SoundActivity에없는 거짓말을하지만, MainActivity에서 다음과 같은 경우 MainActivity 간단히 finish()을 제거하고 문제가 해결 될 것입니다

public class PinballShooterActivity extends Activity { 

    ... 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
     ourSong.release(); 
     finish(); 
     } 
    } 

    ... 

} 

: SoundActivity를 실행 한 후 일시 정지, 그것은 onPause()에서 finish()로 인해 완료됩니다.

+0

이 방법을 사용해 주셔서 감사합니다.하지만 문제는 지금 mainActivity로 돌아 가면 사운드가 멈추는 것입니다. 나는 theSong.reset()으로 onResume()을 시도했지만 작동하지 않았다. – akkki

+0

다시 누르면 해당 활동이 Android에 의해 정리됩니다. 간단한 해결책은 대신 Application 클래스를 통해 오디오 재생을 관리하는 것입니다. –

3
@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 
    } 
} 

당신은이 마무리가 HERES) (순간에 혼란

확인 onPause()에서 SoundActivity가 호출 될 때마다 MainActivity가 백그라운드로 이동하고 onActivity()가 호출되고, finish()가 호출되어 Activity가 종료됩니다.

0

예 휴대 전화 뒤로 버튼을 눌러 애플리케이션의 아무 곳으로나 이동할 수 있습니다. 그냥 내가 위에서 내 댓글에서 지적 내가

public void onBackPressed() { 

    Intent start = new Intent(Current activity.this,on which activity you want to move .class); 
     startActivity(start); 
     finishActivity(0); 
     } 
관련 문제