1

私は自分のウェブサイトからリンクを取得する WebView で Music Play をプログラムしています。

ユーザーがホームボタンを押したときに、ステータスバー通知で 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();
}
}

ユーザーがホームボタンを押すと、このコードはVoid onPause()のために音楽も停止しますが、正しいアクティビティでステータスバー通知で音楽を再生し続ける必要があります。私を助けてください。

よろしく、 ビラック

4

1 に答える 1

1

ドキュメントが言うように、ユーザーがホームキーを押したときにサウンドを再生するためにonUserLeaveHint ()メソッドを使用できます。

ユーザーの選択の結果、アクティビティがバックグラウンドに移行しようとしているときに、アクティビティ ライフサイクルの一部として呼び出されます。たとえば、ユーザーがホーム キーを押すと onUserLeaveHint() が呼び出されますが、電話の着信によって通話中のアクティビティが自動的に前面に表示されると、中断されたアクティビティで onUserLeaveHint() は呼び出されません。 . 呼び出される場合、このメソッドはアクティビティの onPause() コールバックの直前に呼び出されます。

Home キーを押してサウンドを再生するには、IntentServiceを使用します。アクティビティのonUserLeaveHint()で開始する と、このサービスはジョブが終了すると自動停止します。

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
    }
}
于 2012-05-29T03:53:53.103 に答える