2014-11-01 2 views
-1

В Activity A я играю песню, и теперь движется к Activity B здесь снова кнопку, чтобы играть другую песнюПолучение java.lang.IllegalStateException

Теперь я должен проверить, если Activity A's песня already playing, когда я нахожусь на активность B я должен показать сообщение пользователю уже играет песню на активность А, если пользователь не играет песню на активность А затем пользователь может начать играть песню в Activity B

ActivityB.java:-

btnPlay.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 
    if(ActivityA.mPlayer!=null && ActivityA.mPlayer.isPlaying()) // getting exception 
    { 
    Toast.makeText(Activity.this, "Already playing song on Activity A", Toast.LENGTH_LONG).show(); 
    } 
    else 
    { 
    mediaPlayer.start(); 
    btnPlay.setVisibility(View.GONE); 
    btnPause.setVisibility(View.VISIBLE); 
     } 
    } 
}); 

Теперь, когда я getting этот Exception: как я начал playing song в деятельности A, и сейчас движется в операцию B, здесь я tapped on play кнопка - это показывает мне сообщение "Already playing song on Activity A" тогда я решил вернуться к активности А и я постучал в паузе теперь я не играл песню в Activity A и снова я переехал активность B (здесь, когда я действительно нажмите на кнопку Play получения IllegalStateException) на этой линии:

if(ActivityA.mPlayer!=null && ActivityA.mPlayer.isPlaying())

**`Logcat:`** 

11-01 12:39:38.860: E/AndroidRuntime(7101): FATAL EXCEPTION: main 
11-01 12:39:38.860: E/AndroidRuntime(7101): Process: com.example.audio, PID: 7101 
11-01 12:39:38.860: E/AndroidRuntime(7101): java.lang.IllegalStateException 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.media.MediaPlayer.isPlaying(Native Method) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at com.example.audio.ActivityB$1.onClick(ActivityB.java:43) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.view.View.performClick(View.java:4438) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.view.View$PerformClick.run(View.java:18431) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.os.Handler.handleCallback(Handler.java:733) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.os.Handler.dispatchMessage(Handler.java:95) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.os.Looper.loop(Looper.java:149) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at android.app.ActivityThread.main(ActivityThread.java:5061) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at java.lang.reflect.Method.invoke(Method.java:515) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603) 
11-01 12:39:38.860: E/AndroidRuntime(7101):  at dalvik.system.NativeStart.main(Native Method) 
+2

Dont использовать ActivityA музыку игрок в ActivityB просто передает логическое значение в intetn из ActivityA в B. –

+0

@kalyanpvs вы имеете в виду, что мне нужно использовать Intent здесь – Sophie

+0

+1, да. Это должен быть правильный способ сделать это –

ответ

1

Я думаю, что лучше, чтобы сделать это таким образом в ActivityA:

Intent i = new Intent(this, ActivityB.class); 
i.putExtra("isPlaying", mPlayer.isPlaying); 
startActivity(i); 

И в ActivityB'sonCreate:

Bundle data = getIntent().getExtras(); 

if(data != null) 
     { 
      isPlayingBefore = data.getParcelable("isPlaying"); 
     } 

На вашем onClick:

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 
    if(isPlayingBefore) 
    { 
    Toast.makeText(Activity.this, "Already playing song on Activity A", Toast.LENGTH_LONG).show(); 
    } 
    else 
    { 
    mediaPlayer.start(); 
    btnPlay.setVisibility(View.GONE); 
    btnPause.setVisibility(View.VISIBLE); 
     } 
    } 
+0

+1 с моей стороны, опубликовал ее как ответ .. –

+0

здесь isPlayingBefore имеет булевский тип данных? – Sophie

+0

@ Софи да его логические данные типа –

Смежные вопросы