当前位置: 首页 > 知识库问答 >
问题:

按Home键时在状态栏通知栏播放的活动

西门京
2023-03-14

我是程序音乐播放在WebView从我的网站获得链接。

我希望当用户按下Home按钮时,我的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按钮时,音乐也会因为void onPause()而停止,但我需要在状态栏通知中以正确的活动保持音乐播放。请帮帮我。

你好,维拉克

共有1个答案

朱伯寅
2023-03-14

当用户按Home键时,可以使用onUserLeaveHint()方法播放声音,如doc所说:

作为活动生命周期的一部分,当一个活动由于用户的选择即将进入后台时调用。例如,当用户按下Home键时,将调用onUserLeaveHint(),但当来电导致in-call活动自动带到前台时,将不会对被中断的活动调用onUserLeaveHint()。在调用该方法的情况下,会在活动的onPause()回调之前调用该方法。

对于播放声音上首页键按下使用IntentService.启动它在onUserLeaveHint()的您的活动和此服务自动停止时,工作是finished.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
    }
}
 类似资料:
  • 点击通知按钮后如何关闭状态栏? 我试过了,但有个例外: 我的代码: 在NotificationIntent类

  • 我目前遇到以下问题: 我已经实现了自定义FirebaseMessagingService,并且覆盖了方法onMessageReceived()。此外,当应用程序在后台时,我从getExtras()获取捆绑包 我需要通知内容,以便在db中本地保存 发生了什么: 当应用程序处于后台时,从Firebase控制台发送3个通知 创建了3个状态栏通知 单击其中一个- 你能帮忙吗? 启动器活动代码: 自定义Fi

  • 我想知道是否有一种方法,使通知弹出状态栏上方,像传统的祝酒词消息,当第一次收到。默认情况下,当收到通知时,通知标签会显示在状态栏中,并暂时隐藏其他通知图标(如果有的话),直到通知标签显示完毕。然后,通知图标通常被添加到等待用户交互的图标的水平列表中。我想要最初的接收报价只是上升到状态栏之上,然后添加图标与其余的他们。

  • 主要内容:本节引言:,1.设计文档部分解读,2.Notification的基本使用流程,3.设置相关的一些方法:,4.代码示例:最常见的Notification:,5.代码示例下载:,本节小结:本节引言: 本节带来的是Android中用于在状态栏显示通知信息的控件:Notification,相信大部分 学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而 现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;他们各自的Notifi

  • 在Android中有没有可能只在状态栏展开时才显示通知?我的意思是,只有当我拖动状态栏,我可以看到通知,否则它将被隐藏。如果有可能,我如何实施它?我只需要在最小视图中隐藏状态栏中的应用程序图标

  • 我知道如何发送一个通知到状态栏,但当它第一次启动时,它接管了整个状态栏,你看不到任何其他东西,除了你的图标。有没有什么方法可以显示你的图标,而不是它接管整个状态栏几秒钟?