设为首页 收藏本站
查看: 1055|回复: 0

[经验分享] Android & Docker源代码

[复制链接]

尚未签到

发表于 2015-4-18 07:37:54 | 显示全部楼层 |阅读模式
   DSC0000.png
  
  Android App的源代码
   ee                                                    ee
  // myActivity.java
  package com.misoo.pk01;
  import android.app.Activity;
  import android.content.BroadcastReceiver;
  import android.content.ComponentName;
  import android.content.Context;
  import android.content.Intent;
  import android.content.IntentFilter;
  import android.content.ServiceConnection;
  import android.os.Bundle;
  import android.os.IBinder;
  import android.os.Parcel;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.LinearLayout;
  import android.widget.TextView;
    ee                                                    ee
  public class myActivity extends Activity implements OnClickListener {
          private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
          private final int FP = LinearLayout.LayoutParams.FILL_PARENT;
          private Button btn, btn2, btn3;
          public TextView tv;
          private IBinder ib = null;
          private final String MY_S_EVENT =
           new String("com.misoo.pk01.myService.MY_S_EVENT");
          protected final IntentFilter filter=new IntentFilter(MY_S_EVENT);
          private BroadcastReceiver receiver=new myIntentReceiver();
  
          public void onCreate(Bundle icicle) {
                  super.onCreate(icicle);
        
                  LinearLayout layout = new LinearLayout(this);
                  layout.setOrientation(LinearLayout.VERTICAL);
  
      btn = new Button(this);
                  btn.setId(101);
                  btn.setText("play");
                  btn.setBackgroundResource(R.drawable.heart);
                  btn.setOnClickListener(this);
                  LinearLayout.LayoutParams param =
  new LinearLayout.LayoutParams(80, 50);
                  param.topMargin = 10;
                  layout.addView(btn, param);
  
                  btn2 = new Button(this);
                  btn2.setId(102);
                  btn2.setText("stop");
                  btn2.setBackgroundResource(R.drawable.heart);
                  btn2.setOnClickListener(this);
                  layout.addView(btn2, param);
  
    btn3 = new Button(this);
                  btn3.setId(103);
                  btn3.setText("exit");
                  btn3.setBackgroundResource(R.drawable.cloud);
                  btn3.setOnClickListener(this);
                  layout.addView(btn3, param);
  
                  tv = new TextView(this);
                  tv.setText("Ready");
                  LinearLayout.LayoutParams param2 = new
  LinearLayout.LayoutParams(FP, WC);
                  param2.topMargin = 10;
                  layout.addView(tv, param2);
                  setContentView(layout);
        //---------------------------------
                registerReceiver(receiver, filter);
                 //------------------------------------------------------
  bindService(new Intent("com.misoo.pk01.REMOTE_SERVICE"),
  mConnection, Context.BIND_AUTO_CREATE);
  }
  private ServiceConnection mConnection = new ServiceConnection() {
  @Override
  public void onServiceConnected(ComponentName className, IBinder
  ibinder) {
  ib = ibinder;
  }
  @Override
  public void onServiceDisconnected(ComponentName name) {
  // TODO Auto-generated method stub
  
  }
  };
   public void onClick(View v) {
                  switch (v.getId()) {
                  case 101:
                          Parcel data = Parcel.obtain();
                          Parcel reply = Parcel.obtain();
                          try {
                                  ib.transact(1, data, reply, 0);
                          } catch (Exception e) {
                                  e.printStackTrace();
                          }
                          break;
                  case 102:
    data = Parcel.obtain();
                          reply = Parcel.obtain();
                          try {
                                          ib.transact(2, data, reply, 0);
                                  } catch (Exception e) {
                                          e.printStackTrace();
                                  }
                          break;
                  case 103:
                          finish();
                          break;
                  }
          }
      //----------------------------------------------------
    class myIntentReceiver extends BroadcastReceiver {
                  @Override
                  public void onReceive(Context context, Intent intent) {
                          int bn = intent.getIntExtra("key",-1);
                          if(bn == 0)
                              tv.setText("Playing");
                          else
                                  tv.setText("Stop.");
                  }
          }
  }
    ee                                                    ee
  // myService.java
  package com.misoo.pk01;
  import android.app.Service;
  import android.content.Context;
  import android.content.Intent;
  import android.media.MediaPlayer;
  import android.os.*;
  import android.util.Log;
  ee                                                           ee
  public class myService extends Service implements Runnable {
          private IBinder mBinder = null;
          private Thread th1;
          public static Handler h;
          private MediaPlayer mPlayer = null;
          public static Context ctx;
          private final String MY_S_EVENT =
               new String("com.misoo.pk01.myService.MY_S_EVENT");
  
          @Override
          public void onCreate() {
                  super.onCreate();
                   ctx = this;
                   mBinder = new myBinder();
                   //---------------------------------
      // 诞生一个子线程及其MQ
                   // 等待Message
                   //---------------------------------
                   th1 = new Thread(this);
                  th1.start();
      }
          @Override
          public IBinder onBind(Intent intent) {
                  return mBinder;
          }
        
          public void run() {
               Looper.prepare();
                  h = new EventHandler(Looper.myLooper());
             Looper.loop();
  }
  //---------------------------------------
          class EventHandler extends Handler {
          public EventHandler(Looper looper) {
                           super(looper);
          }
          public void handleMessage(Message msg) {
                   String obj = (String)msg.obj;
                   if(obj.contains("play"))
                    {
                           if(mPlayer != null) return;
                          //----------------------------------
                                 Intent in = new Intent(MY_S_EVENT);
                                 in.putExtra("key", 0);
                                 ctx.sendBroadcast(in);      
                             //----------------------------------
                           mPlayer = MediaPlayer.create(ctx, R.raw.dreamed);
    try {
                                          mPlayer.start();
                           } catch (Exception e) {
                                          Log.e("Play", "error: " + e.getMessage(), e);
                                  }
                         
                   }
                   else if(obj.contains("stop")) {
                           if (mPlayer != null) {
                                  //----------------------------------
                                    Intent in = new Intent(MY_S_EVENT);
                                    in.putExtra("key", 1);
                                    ctx.sendBroadcast(in);      
                                //----------------------------------
                              mPlayer.stop();
                                   mPlayer.release();
                                  mPlayer = null;
                           }
                 }
      }}}
   ee                                                    ee
  // myBinder.java
  package com.misoo.pk01;
  import android.os.Binder;
  import android.os.Message;
  import android.os.Parcel;
  
  public class myBinder extends Binder{
          @Override
          public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
              throws android.os.RemoteException {
                    switch(code){
                          case 1:
                                  // 将Message丢到子线程的MQ to draw Graphic
                                  String obj = "play";
                                  Message msg = myService.h.obtainMessage(1,1,1,obj);
                       myService.h.sendMessage(msg);
   break;
                          case 2:
                                  // 将Message丢到子线程的MQ to stop drawing
                                  obj = "stop";
                                  msg = myService.h.obtainMessage(1,1,1,obj);
                       myService.h.sendMessage(msg);
   break;
                         }
                         return true;
          }}
  // ----------- END --------------------------------------------------------------
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58249-1-1.html 上篇帖子: 使用docker-hub 下篇帖子: 开源中国的 Docker 优秀文章汇总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表