Музыка Android WebView (Упражнение A) все еще играет, даже если пользователь перейдет к занятию B

1

Я хотел бы найти решение о том, как остановить музыку, когда пользователь вернется к основной деятельности.

Мой код ниже, пользователь может вернуться к Activity A, как обычно, но музыка все еще воспроизводится из Activity B.

У меня есть второе действие как код ниже:

Макет A

<Button
    android:id="@+id/buttonUrl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="My Song" />

Java активности A

public class MySongActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        final Context context = this;

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

         final Button button = (Button) findViewById(R.id.buttonUrl);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {

                Intent intent = new Intent(context, WebViewActivity.class);

                startActivity(intent);
         }
     });
}
}

Макет B

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none" />

Java активности B

public class WebViewActivity extends Activity {

WebView mWebView;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.playlist);

    mWebView = (WebView) findViewById(R.id.webView1);
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.loadUrl("http://m.orkun2u.com/msopheap/song/mysongs.htm");
}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}

Пожалуйста, помогите мне. Я ценю вашу помощь.

Примечание.

Я пробовал все, что Google, но все равно не останавливает музыку.

Теги:

3 ответа

3
Лучший ответ

просто еще одна вещь о том, что сказал Падма Кумар. способ остановить - использовать функцию dismiss.

@Override
public void onPause() {
    mWebView.setVisibility(View.GONE);
    mWebView.destroy();
    super.onPause();
}

обновлено: chenged функция fromoff dismiss() для destroy(), для более: читайте здесь: http://developer.android.com/reference/android/webkit/WebView.html

  • 0
    Уважаемый Thepoosh, большое спасибо, но после того, как я добавил ваш код в WebViewActivity, было сказано, что метод dismiss () недоопределен. Не сработало
  • 0
    о, извините, это не dismiss а close()
Показать ещё 8 комментариев
0

Я просто думаю, что лучший способ справиться с этой проблемой - это не webView.destory() в Activity onPause().

Я думаю что:

@Override  
protected void onResume() {  
    super.onResume();  
    webView.resumeTimers();  
    webView.onResume();
}

@Override  
protected void onPause() {  
    if (null != getWebView()) {  
        webView.pauseTimers();  
        webView.onPause();  
        webView.reload();  
    }  
    super.onPause();  
}  

Сделаю все что в моих силах.

0

//onPause остановить музыку

   public class MySongActivity extends Activity {
        public void onCreate(Bundle savedInstanceState) {
            final Context context = this;
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

     final Button button = (Button) findViewById(R.id.buttonUrl);
     button.setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {

            Intent intent = new Intent(context, WebViewActivity.class);

            startActivity(intent);
     }
 });

}

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

    //stop the music here
}

}

  • 0
    Уважаемый Кумар, я уже добавил, если // остановить музыкальный плеер.stop (); но музыка все еще играет в предыдущей деятельности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню