当前位置: 首页 > news >正文

聊城做网站推广找谁租用海外服务器的网站有域名吗

聊城做网站推广找谁,租用海外服务器的网站有域名吗,网站功能建设特点,wordpress智能表单PendingIntent翻译成中文为“待定意图”#xff0c;这个翻译很好地表示了它的涵义。PendingIntent描述了封装Intent意图以及该意图要执行的目标操作。PendingIntent封装Intent的目标行为的执行是必须满足一定条件#xff0c;只有条件满足#xff0c;才会触发意图的目标操作。…PendingIntent翻译成中文为“待定意图”这个翻译很好地表示了它的涵义。PendingIntent描述了封装Intent意图以及该意图要执行的目标操作。PendingIntent封装Intent的目标行为的执行是必须满足一定条件只有条件满足才会触发意图的目标操作。 一.获取PendingIntent对象 获取PendingIntent对象有以下几种方式: PendingIntent.getActivity(Context, int, Intent, int)启动活动PendingIntent.getActivities(Context, int, Intent[], int)启动多个活动意图中为数组PendingIntent.getBroadcast(Context, int, Intent, int)启动广播PendingIntent.getService(Context, int, Intent, int)启动服务 参数说明 Contextcontext上下文PendingIntent启动活动的上下文intrequestCode请求码 ,发送者发送的请求码Intentintent意图要加载活动的意图intflags 标记 对于其中的标记可以定义为下列形式 FLAG_ONE_SHOTPendingIntent对象仅使用一次FLAG_NO_CREATE如果PendingIntent对象不存在则返回nullFLAG_CANCEL_CURRENT如果PendingIntent对象已存在则取消原有的对象创建新的PendingIntent对象FLAG_UPDATE_CURRENT如果PendingIntent对象已存在则保留原有的对象修改原有对象的属性数据FLAG_IMMUTABLEPendingIntent对象是不可变的FLAG_MUTABLEPendingIntent对象是可变的另外其他Intent中支持的标记都可以在标记参数中使用。 二、应用实例 例如在MainActivity启动前台服务播放音乐利用前台服务的通知提供的内容跳转到其他活动例如SongActivity介绍歌曲。界面如下所示。 点击第一张图的播放会播放音频同时发布通知如第二张图所示。在第二张图的红色箭头区域点击可以屏幕会跳转到第三张图。在第三张图中点击“返回”,则返回主活动。 1. AndroidManifest.xml清单配置权限 uses-permission android:nameandroid.permission.POST_NOTIFICATIONS /uses-permission android:nameandroid.permission.ACCESS_NOTIFICATION_POLICY /uses-permission android:nameandroid.permission.FOREGROUND_SERVICE /uses-permission android:nameandroid.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK /2. 定义MusicService class MusicService : Service() {lateinit var mediaPlayer: MediaPlayeroverride fun onCreate() {super.onCreate()mediaPlayer MediaPlayer.create(this,R.raw.song3)}override fun onBind(intent: Intent): IBinder? {postNotification()playMusic()return null}override fun onUnbind(intent: Intent?): Boolean {stopMusic()return super.onUnbind(intent)}/*** 播放音乐*/private fun playMusic(){mediaPlayer.setOnPreparedListener {mediaPlayer.start()}mediaPlayer.setOnCompletionListener {mediaPlayer.release()}}/*** 停止播放*/private fun stopMusic(){if(mediaPlayer.isPlaying){mediaPlayer.stop()mediaPlayer.release()}}/*** 创建通知渠道* param id String* param name String*/private fun createNotificationChannel(id:String,name:String){//创建通知管理器val notificationManager getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager//定义通知渠道val channel NotificationChannel(id,name,NotificationManager.IMPORTANCE_DEFAULT)//创建通知渠道notificationManager.createNotificationChannel(channel)}/*** 发布通知*/private fun postNotification(){if(Build.VERSION.SDK_INTBuild.VERSION_CODES.O) {createNotificationChannel(music_service,歌曲)}//定义跳转SongActivity的PendingIntentval descPendingIntent getSongPendingIntent()//定义启动控制音乐播放广播接受器的PendingIntentval playPendingIntent getPlayPendingIntent()//定义启动控制音乐停止播放广播接受器的PendingIntentval stopPendingIntent getStopPendingIntent()//定义动作val playAction NotificationCompat.Action(android.R.drawable.ic_media_play,播放,playPendingIntent)val stopAction NotificationCompat.Action(android.R.drawable.ic_media_pause,停止,stopPendingIntent)//创建通知val notification NotificationCompat.Builder(this,music_service).apply{setOngoing(true)setOnlyAlertOnce(true)setContentTitle(播放音乐)setContentText(正在播放歌曲...)setSmallIcon(R.mipmap.ic_launcher)setColorized(true)color resources.getColor(R.color.teal_200,null)setContentIntent(descPendingIntent)// addAction(android.R.drawable.ic_media_play,播放,playPendingIntent) //android23开始不支持 // addAction(android.R.drawable.ic_media_pause,停止,stopPendingIntent)//android23开始不支持addAction(playAction)addAction(stopAction)}.build()startForeground(1,notification)}/*** 跳转到歌曲介绍的界面* return PendingIntent*/private fun getSongPendingIntent():PendingIntent{//定义启动服务的意图val intent Intent(this,SongActivity::class.java)//定义PendingIntentreturn PendingIntent.getActivity(this,1,intent,PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)}private fun getPlayPendingIntent(): PendingIntent {//创建意图过滤器val intentFilter IntentFilter()//增加动作intentFilter.addAction(PLAY_ACTION)//创建音乐播放广播接受器val playReceiver object: BroadcastReceiver(){override fun onReceive(context: Context?, intent: Intent?) {playMusic()}}//注册播放音乐广播器registerReceiver(playReceiver,intentFilter)//创建播放意图val intent Intent(PLAY_ACTION)return PendingIntent.getBroadcast(this,2,intent,PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)}private fun getStopPendingIntent():PendingIntent{//创建意图过滤器val intentFilter IntentFilter()//增加动作intentFilter.addAction(STOP_ACTION)//创建停止播放广播接受器val stopReceiver object: BroadcastReceiver(){override fun onReceive(context: Context?, intent: Intent?) {stopMusic()}}//注册广播接收器registerReceiver(stopReceiver,intentFilter)//创建意图val intent Intent(STOP_ACTION)return PendingIntent.getBroadcast(this,3,intent,PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)} }3.定义主活动MainActivity class MainActivity : ComponentActivity() {lateinit var intent1:Intentval conn object:ServiceConnection{override fun onServiceConnected(name: ComponentName?, service: IBinder?) {}override fun onServiceDisconnected(name: ComponentName?) {}}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)intent1 Intent(this,MusicService::class.java)requestNotificationPermission()setContent {Lab03Theme {// A surface container using the background color from the themeSurface(modifier Modifier.fillMaxSize(),color MaterialTheme.colorScheme.background) {MainScreen(playAction::playMusic,stopAction::stopMusic)}}}}/*** 请求通知权限*/private fun requestNotificationPermission(){if(Build.VERSION.SDK_INT Build.VERSION_CODES.TIRAMISU) {ActivityCompat.requestPermissions(this,arrayOf(android.Manifest.permission.POST_NOTIFICATIONS),0)}}/*** 绑定播放音频的服务*/private fun playMusic(){bindService(intent1,conn, Context.BIND_AUTO_CREATE)}/*** 解除绑定*/private fun stopMusic(){unbindService(conn)} }Composable fun MainScreen(playAction:()-Unit,stopAction:()-Unit) {Column(horizontalAlignment Alignment.CenterHorizontally,verticalArrangement Arrangement.Center){Row{TextButton(onClick {playAction.invoke()}){Row{Icon(imageVector Icons.Filled.PlayArrow,contentDescription play)Text(播放)}}TextButton(onClick {stopAction.invoke()}){Row{Icon(imageVector Icons.Filled.Stop,contentDescription play)Text(停止)}}}} }4.定义显示歌曲介绍的SongActivity class SongActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent{Column{Text(正在播放歌曲歌曲介绍内容描述暂时没有定义)TextButton(onClick {//结束当前活动finish()}){Text(返回)}}}} }参考文献 1.PendingIntent https://developer.android.google.cn/reference/android/app/PendingIntent
http://www.yingshimen.cn/news/111305/

相关文章:

  • 教育网站 前置审批厦门网站建设门户
  • 搭建网站的价格evus在哪个网站做登记
  • 足球网站界面设计网站题头是什么
  • 景安网站备案幕布熊猫关键词挖掘工具
  • 酒店网站建设方案策划书品牌微信网站开发
  • 建设银行网站登录不租服务器
  • 先做网站还是先申请域名网站建设推广资讯
  • 网站建设意见征求沧浪网站建设
  • 网站建设 部署与发布视频价格列表 wordpress
  • 网站建设未完成建设公司门户网站建设方案
  • 做网站一般需要哪些文件夹万表网手表官网
  • 微信建设网站找哪家网站建设佰首选金手指十七
  • 帝国cms二手网站模板wordpress设置登录背景图片
  • 云南网站建设设计自己的电脑可以做网站服务器吗
  • 网站分站的实现方法网络营销做得好的公司
  • 平面设计的基本流程是什么开封网站优化
  • 一个简单的动态页面网站需要数据库吗徐州地区网站建设
  • 四川网站建设设计公司wordpress无评论
  • 哪个网站用织梦做的wordpress手机号网站
  • 网站制定公司旅游网站开发设计文档
  • 网站可以用什么做形容网站做的好
  • 楚雄州住房和城乡建设局网站微信平台推广方法
  • 怎么看网站建设时间网页与网站设计实验报告
  • 没营业执照怎么做网站重庆教育建设有限公司网站
  • 好看的免费网站模板下载 迅雷下载地址网络营销第三版课本
  • 网站建设好后的手续交接信用卡网站建设
  • 品牌微信网站定制新网站 百度推广
  • 台州网站如何制作旧手机服务器wordpress
  • 网站建设的实习报告企业展厅设计公司价格表
  • 网站站内关键词优化vip wordpress