Home Pressed时,状态栏通知栏中的活动正在播放

时间:2012-05-29 03:07:21

标签: android

我是使用WebView编程音乐播放从我的网站获取链接。

当用户按下Home Button时,我希望我的WebView活动与状态栏通知保持一致。请帮我一些。

WebView中的我的代码:

public class playlist extends Activity {
private WebView mWebView;
MediaPlayer myMediaPlayer;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.playlist);

    mWebView = new WebView(this);

    mWebView = (WebView) findViewById(R.id.playlist);
    mWebView.setWebViewClient(new myWebClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.loadUrl("http://www.mp3skull.com/justin_bieber.html");
}

public class myWebClient extends WebViewClient  
{  
    @Override  
    public void onPageStarted(WebView view, String url, Bitmap favicon) {  
        // TODO Auto-generated method stub  
        super.onPageStarted(view, url, favicon);  
    }  
    @Override  
    public boolean shouldOverrideUrlLoading(WebView view, String url) {  
        // TODO Auto-generated method stub  
        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);
}
@Override
public void onPause() {
    mWebView.setVisibility(View.GONE);
    mWebView.destroy();
    super.onPause();
}
}

当用户按Home键时,此代码由于Voide onPause()而停止音乐,但我需要在状态栏通知中保持音乐播放正确。请帮帮我。

此致 Virak

1 个答案:

答案 0 :(得分:1)

当用户按主页键时,您可以使用onUserLeaveHint ()方法播放声音,如文档所述:

  

当活动即将到来时,被称为活动生命周期的一部分   作为用户选择的结果进入后台。例如,何时   用户按下Home键,将调用onUserLeaveHint(),但是   当来电通话导致通话活动时   自动带到前台,onUserLeaveHint()不会   呼吁活动被打断。在调用它的情况下,   在活动的onPause()回调之前调用此方法。

要在Home键上播放声音,请使用IntentService。在 onUserLeaveHint()中启动它 您的活动和此服务在作业完成时自动停止.as:

public class MyService extends IntentService {

public MyService(String name) {
    super(name);
    // TODO Auto-generated constructor stub
}
public MyService () {
  super("MyService");
}

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}
@Override
protected void onHandleIntent(Intent arg0) {
    // TODO Auto-generated method stub
         // PLAY SOUND HERE
    }
}