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

Activity A 的 Java

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

Activity B的Java

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);
}
}

请帮助我。我非常感谢您的帮助。

注意

我尝试了谷歌的所有方式,但仍然没有停止音乐。

4

3 回答 3

3

关于Padma Kumar所说的还有一件事。停止的方法是使用该dismiss功能。

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

更新:将功能从dismiss()destroy(),更多信息:阅读此处:http: //developer.android.com/reference/android/webkit/WebView.html

于 2012-05-21T08:36:06.993 回答
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
}

}

于 2012-05-21T08:31:44.150 回答
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();  
}  

尽我所能。

于 2018-07-06T12:05:00.690 回答