EX06_15.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex06_15;
  2. import android.app.Activity;
  3. import android.content.BroadcastReceiver;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.IntentFilter;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.TextView;
  11. import android.widget.Toast;
  12. public class EX06_15 extends Activity
  13. {
  14.   /* 创建自定义mServiceReceiver对象 */
  15.   private mServiceReceiver mReceiver01;
  16.   private TextView mTextView01;
  17.   private Button mButton01, mButton02;
  18.   
  19.   /** Called when the activity is first created. */
  20.   @Override
  21.   public void onCreate(Bundle savedInstanceState)
  22.   {
  23.     super.onCreate(savedInstanceState);
  24.     setContentView(R.layout.main);
  25.     
  26.     mTextView01 = (TextView)findViewById(R.id.myTextView1);
  27.     mButton01 = (Button)findViewById(R.id.myButton1);
  28.     mButton02 = (Button)findViewById(R.id.myButton2);
  29.     
  30.     /* 启动系统服务(Service) */
  31.     mButton01.setOnClickListener(new Button.OnClickListener()
  32.     {
  33.       @Override
  34.       public void onClick(View v)
  35.       {
  36.         // TODO Auto-generated method stub
  37.         
  38.         /* 开始运行后台服务(Service) */
  39.         Intent i = new Intent( EX06_15.this, mService1.class ); 
  40.         i.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); 
  41.         startService(i);
  42.         mMakeTextToast
  43.         (
  44.           getResources().getText
  45.           (R.string.str_service_online).toString(),
  46.           false
  47.         );
  48.       }
  49.     });
  50.     
  51.     /* 终止系统服务(Service) */
  52.     mButton02.setOnClickListener(new Button.OnClickListener()
  53.     {
  54.       @Override
  55.       public void onClick(View v)
  56.       {
  57.         // TODO Auto-generated method stub
  58.         
  59.         /* 指定终止运行后台服务(mService1) */
  60.         Intent i = new Intent( EX06_15.this, mService1.class );
  61.         
  62.         /* 顺利关闭系统服务 */
  63.         if(stopService(i)==true)
  64.         {
  65.           mTextView01.setText(R.string.str_button2);
  66.           mMakeTextToast
  67.           (
  68.             getResources().getText
  69.             (R.string.str_service_offline).toString(),
  70.             false
  71.           );
  72.         }
  73.         else
  74.         {
  75.           /* 显示关闭服务失败 */
  76.           mTextView01.setText(R.string.str_err_stopservicefailed);
  77.         }
  78.       }
  79.     });
  80.   }
  81.   
  82.   /* 继承自BroadcastReceiver的mServiceReceiver类接受广播信息 */
  83.   public class mServiceReceiver extends BroadcastReceiver
  84.   {
  85.     @Override
  86.     public void onReceive(Context context, Intent intent)
  87.     {
  88.       // TODO Auto-generated method stub
  89.       
  90.       try
  91.       {
  92.         /* 取回来自背景服务所Broadcast的参数 */
  93.         Bundle bunde = intent.getExtras();
  94.         String strParam1 = bunde.getString("STR_PARAM1");
  95.         
  96.         /* 将从Service里传来的广播信息显示于TextView */
  97.         mTextView01.setText(strParam1);
  98.         Intent i = new Intent( EX06_15.this, mService1.class );
  99.         if(stopService(i)==true)
  100.         {
  101.           mMakeTextToast
  102.           (
  103.             getResources().getText
  104.             (R.string.str_service_offline).toString(),
  105.             true
  106.           );
  107.         }
  108.       }
  109.       catch(Exception e)
  110.       {
  111.         mTextView01.setText(e.toString());
  112.         e.getStackTrace();
  113.       }
  114.     }
  115.   }
  116.   
  117.   public void mMakeTextToast(String str, boolean isLong)
  118.   {
  119.     if(isLong==true)
  120.     {
  121.       Toast.makeText(EX06_15.this, str, Toast.LENGTH_LONG).show();
  122.     }
  123.     else
  124.     {
  125.       Toast.makeText(EX06_15.this, str, Toast.LENGTH_SHORT).show();
  126.     }
  127.   }
  128.   
  129.   @Override
  130.   protected void onResume()
  131.   {
  132.     // TODO Auto-generated method stub
  133.     try
  134.     {
  135.       /* 前景程序生命周期开始 */
  136.       IntentFilter mFilter01;
  137.       
  138.       /* 自定义要过滤的广播信息(DavidLanz) */
  139.       mFilter01 = new IntentFilter
  140.       (mService1.HIPPO_SERVICE_IDENTIFIER);
  141.       
  142.       mReceiver01 = new mServiceReceiver();
  143.       registerReceiver(mReceiver01, mFilter01);
  144.     }
  145.     catch(Exception e)
  146.     {
  147.       mTextView01.setText(e.toString());
  148.       e.getStackTrace();
  149.     }
  150.     super.onResume();
  151.   }
  152.   
  153.   @Override
  154.   protected void onPause()
  155.   {
  156.     // TODO Auto-generated method stub
  157.     
  158.     /* 前景程序生命周期结束,解除刚向系统注册的Receiver */
  159.     unregisterReceiver(mReceiver01);
  160.     super.onPause();
  161.   }
  162. }