2012-05-21 82 views
1

我想找到一個解決方案,當用戶返回到主要活動時如何停止音樂。Android WebView(活動A)音樂仍然播放甚至用戶去活動B

我的代碼如下,用戶可以返回到活動A作爲一般但是音樂仍然活動B玩。

我具有第二活性如下面的代碼:

佈局活動的一個

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

爪哇甲

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" /> 

爪哇活動的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); 
} 
} 

請幫助我。我非常感謝您的幫助。

注意

我嘗試了所有的辦法,谷歌,但仍然沒有停止音樂。

回答

3

只是一兩件事。停止的方法是使用dismiss函數。

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

更新: chenged功能從dismiss()destroy(),更多:在這裏閱讀:http://developer.android.com/reference/android/webkit/WebView.html

+0

親愛的Thepoosh,非常感謝你,但是我在WebViewActivity中添加了你的代碼之後,我們說方法dismiss()是未定義的。沒有工作。 – SopheakVirak

+0

哦,對不起,這不是'解僱'而是'關閉()' – thepoosh

+0

親愛的Thepoosh。它看起來一樣。爲WebView定義了close()方法。 – SopheakVirak

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

親愛的庫馬爾,我已經添加//如果停止音樂 player.stop();但音樂依然在以前的活動中播放。 – SopheakVirak