2013-08-21 2 views
0

내가 원하는 것은 사용자가 앱을 시작할 때 음악을 재생하고 다음 활동으로 이동하면 음악이 멈 춥니 다 (멋짐). 그러나 사용자가 뒤로 버튼을 선택하면 오디오가 주 메뉴 (활동)에서 다시 재생되기 시작합니다. 아무 일도 일어나지 않아 음악이 전혀 재생되지 않습니다. 활동에서 뒤로 키를 누르면 이전 활동에서 다시 음악을 재생해야합니다.

import android.app.Activity; 
import android.content.pm.ActivityInfo; 
import android.os.Bundle; 

public class Introduction extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.introduction); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

} 
} 

내가 소개 클래스에 뭔가를 추가하거나 안 여기

import java.util.List; 

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ActivityManager; 
import android.app.ActivityManager.RunningTaskInfo; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.content.pm.ActivityInfo; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends Activity { 
MediaPlayer mp; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    mp = MediaPlayer.create(this, R.raw.audio); 
    mp.setLooping(true); 
    super.onResume(); 
     if(mp != null && !mp.isPlaying()) 
      mp.start(); 
     super.onResume(); 


    Button next = (Button) findViewById(R.id.button1); 

    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), Introduction.class); 
      startActivityForResult(myIntent, 0); 
      } 

     }); 
    } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 


@Override 
protected void onPause() { 
if (this.isFinishing()){ //basically BACK was pressed from this activity 
mp.stop(); 
    } 
else{ 

} 
Context context = getApplicationContext(); 
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 
List<RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
if (!taskInfo.isEmpty()) { 
ComponentName topActivity = taskInfo.get(0).topActivity; 
if (!topActivity.getPackageName().equals(context.getPackageName())) { 
    mp.stop(); 

} 
else { 
    mp.stop(); 
} 
} 
    super.onPause(); 

} 
} 

MainActivity.java

내 코드입니다 그리고 여기 내 코드는 Introduction.java

입니다? 도움을 주시면 대단히 감사하겠습니다 !!

답변

0

당신은 당신이 super.onResumen onCreate라고 부르는 친구 친구가 있습니다.

이 onResumen을 무시하고이 모든 직원을 넣어보십시오

onResumen 렸기 때문에
@Override 
public void onResumen(){ 
super.onResume(); 
mp = MediaPlayer.create(this, R.raw.audio); 
mp.setLooping(true); 

    if(mp != null && !mp.isPlaying()) 
     mp.start(); 

} 

는, 당신은 startActivityForResult()으로 소개 활동을 시작하고 이후 활동이 다시

+0

정말 고마워요 !!!!! 그것은 작동합니다! – Allrounder

+0

답변을 확인하십시오. – Xenione

0

전경에 올 때마다 전화입니다 MainActivy.java, onActivityResult(int requestCode, int resultCode, Intent data) 메소드를 대체하십시오. 이 방법으로 음악을 다시 시작할 수 있습니다.

@Override onActivityResult (int requestCode, int resultCode, Intent data) 
{ 
    if(mp != null && !mp.isPlaying()) 
     mp.start(); 
} 
관련 문제