• 实验7 BindService模拟通信


    实验报告

    课程名称

    基于Android平台移动互联网开发

    实验日期

    2016年4月22日

    实验项目名称

     BindService模拟通信

    实验地点

    S30010

    实验类型

    □验证型    √设计型    □综合型

    学  时

    2

    一、实验目的及要求(本实验所涉及并要求掌握的知识点)

    1.目的:实现启动端和BindService之间的双向通信

    2.要求:实现从启动端传递一个数据至BindService端;

    实现使用BindService服务播放项目源文件中的音乐;

    实现在启动端通过“增加”和“降低”两个按钮控制音频音量大小。

    实现在启动端通过“暂停”按钮控制音频暂停播放。

    二、实验环境(本实验所使用的硬件设备和相关软件)

    (1)PC机

    (2)操作系统:Windows XP

    (3)软件: Eclipse, JDK1.6,Android SDK,ADT

    三、实验内容及步骤

    1)完善Activity类

    2)新建Service类

    四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

    代码:

    sudoku的musicsetting.xml的代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical" >

     

        <TextView

            android:id="@+id/textView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="音量" />

     

        <SeekBar

            android:id="@+id/seekBar1"

            android:layout_width="match_parent"

            android:layout_height="wrap_content" />

     

        <ProgressBar

            android:id="@+id/progressBar1"

            style="?android:attr/progressBarStyleHorizontal"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            />

     

        <CheckBox

            android:id="@+id/checkBox1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="静音" />

     

        <TextView

            android:id="@+id/textView2"

            android:layout_width="wrap_content"

            android:layout_height="0dp"

            android:text="" />

     

    </LinearLayout>

    sudoku的musicsetting.java部分代码:

    public class MusicBService extends Service implements MediaPlayer.OnCompletionListener {

       MediaPlayer player;

       private final IBinder binder=new AudioBinder();

        @Override

        public IBinder onBind(Intent arg0) {

            // TODO Auto-generated method stub

            return binder;

        }

        @Override

        public void onCompletion(MediaPlayer player) {

            // TODO Auto-generated method stub

            stopSelf();

        }

        public void onCreate(){

            super.onCreate();

            player=MediaPlayer.create(this, R.raw.model);

            player.setOnCompletionListener(this);

        }

        public int onStartCommand(Intent intent,int flags,int startId){

            if(!player.isPlaying()){

                player.start();

            }

            return START_STICKY;

        }

        public void onDestroy(){

            if(player.isPlaying()){

                player.stop();

            }

            player.release();

        }

        class AudioBinder extends Binder{

            MusicBService getService(){

                return MusicBService.this;

            }

        }

       

        public boolean onUnbind(Intent intent){

            return super.onUnbind(intent);

        }

     

    }

    }

    运行结果:(截图)

    1. sudoku项目效果图:

     

    五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

    通过这一次的实验,我对service类有了一点点的理解,希望可以越做越好。

    实验评语

     

    实验成绩

     

    指导教师签名:              年   月   日

               
  • 相关阅读:
    【转】sublime text 2 中文乱码解决办法
    vi使用入门指南
    【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错
    日语五十音图快速记忆法
    深度阅读:C语言指针,从底层原理到花式技巧,图文+代码透析
    全民热衷“合成大西瓜”,游戏外挂上热搜,不愧是程序员!
    零基础想要转行成为程序员?这几点你要知道
    恩怨纠缠的苹果和微信!苹果底层开源代码中包含兼容微信的代码,这是苹果偷学代码啦?
    好你个C语言,原来还有这么多副面孔!
    “熊孩子”乱敲键盘就攻破了Linux桌面,其父亲发现linux漏洞
  • 原文地址:https://www.cnblogs.com/xy1015/p/5451618.html
Copyright © 2020-2023  润新知