【问题标题】:Activity playing at Status Bar Notification bar when Home Pressed按下主页时在状态栏通知栏播放的活动
【发布时间】:2012-05-29 11:53:53
【问题描述】:

我正在 WebView 中对音乐播放进行编程,从我的网站获取链接。

当用户按下主页按钮时,我希望我的 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();
}
}

当用户按下主页按钮时,此代码音乐也会因为 Vide onPause() 而停止,但我需要通过正确的活动在状态栏通知上继续播放音乐。请帮帮我。

问候, 维拉克

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      相关资源
      最近更新 更多