当前位置:  编程技术>移动开发
本页文章导读:
    ▪用ApplicationContext在Activity与Activity其间传值        用ApplicationContext在Activity与Activity之间传值 class  MyApp  extends  Application {    private  String myState;    public  String getState() {    return  myState;    }    public   void  setState.........
    ▪ ConnectivityManager判断是不是有网络        ConnectivityManager判断是否有网络 /** 判断是否有网络 */ private boolean checkNetwork() { boolean flag = false; ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); if (cwjManager.g.........
    ▪ 混同使用startService与bindService时的情况       混合使用startService与bindService时的情况 1.如果先bindService,再startService: 在bind的Activity退出的时候,Service会执行unBind方法而不执行onDestory方法,因为有startService方法调用过,所以Activity与Service解除绑.........

[1]用ApplicationContext在Activity与Activity其间传值
    来源: 互联网  发布时间: 2014-02-18
用ApplicationContext在Activity与Activity之间传值
  • class  MyApp  extends  Application {  
  •  private  String myState;  
  •  public  String getState() {  
  •  return  myState;  
  •  }  
  •  public   void  setState(String s) {  
  •  myState = s;  
  •  }  
  •  } 

  • 在AndroidManifest.xml的application加个name属性就可以了,如下面所示:

      android:name=".MyApp" android:icon="@drawable/icon"
      android:label="@string/app_name">

     

     

  • class  Blah  extends  Activity {  
  •   
  • Override  
  •  public   void  onCreate(Bundle b){  
  •  ...  
  •  MyApp appState = ((MyApp)getApplicationContext());  
  •  String state = appState.getState();  
  •  ...  
  •  }  
  •  } 

  •     
    [2] ConnectivityManager判断是不是有网络
        来源: 互联网  发布时间: 2014-02-18
    ConnectivityManager判断是否有网络
    /** 判断是否有网络 */
    	private boolean checkNetwork() {
    		boolean flag = false;
    		ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    		if (cwjManager.getActiveNetworkInfo() != null)
    			flag = cwjManager.getActiveNetworkInfo().isAvailable();
    		if (!flag) {
    			Builder b = new AlertDialog.Builder(this).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网络连接");
    			b.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    				public void onClick(DialogInterface dialog, int whichButton) {
    					Intent mIntent = new Intent("/");
    					ComponentName comp = new ComponentName("com.android.settings",
    							"com.android.settings.WirelessSettings");
    					mIntent.setComponent(comp);
    					mIntent.setAction("<span hilite\">android</span>.intent.action.VIEW");
    					startActivity(mIntent);
    				}
    			}).setNeutralButton("取消", new DialogInterface.OnClickListener() {
    				public void onClick(DialogInterface dialog, int whichButton) {
    					dialog.cancel();
    				}
    			}).create();
    			b.show();
    		}
    
    		return flag;
    	}


    Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
    http://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html

    /**
    	 * 检测是否开启wify或gprs
    	 * @param context
    	 * @return
    	 */
    	public boolean checkNetwork(final Context context){
            ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    
            //mobile 3G Data Network
            State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
            //wifi
            State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
            
            //如果3G网络和wifi网络都未连接,且不是处于正在连接状态 则进入Network Setting界面 由用户配置网络连接
            if(mobile==State.CONNECTED||mobile==State.CONNECTING)
                return true;
            if(wifi==State.CONNECTED||wifi==State.CONNECTING)
            	return true;
            
            
            Builder b = new android.app.AlertDialog.Builder(context).setTitle("没有可用的网络").setMessage("请开启GPRS或WIFI网络连接");
    		b.setPositiveButton("设置网络", new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int whichButton) {
    				context.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//进入无线网络配置界面
    //				context.startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //进入手机中的wifi网络设置界面
    			}
    		}).setNeutralButton("取消", new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int whichButton) {
    				dialog.cancel();
    			}
    		}).create();
    		b.show();
    		return false;
            
        }
    


    App自动更新之通知栏下载
    http://www.cnblogs.com/qianxudetianxia/archive/2011/04/12/2010919.html

        
    [3] 混同使用startService与bindService时的情况
        来源: 互联网  发布时间: 2014-02-18
    混合使用startService与bindService时的情况

    1.如果先bindService,再startService:

    在bind的Activity退出的时候,Service会执行unBind方法而不执行onDestory方法,因为有startService方法调用过,所以Activity与Service解除绑定后会有一个与调用者没有关连的Service存在

     

    2.如果先bindService,再startService,再调用Context.stopService

    Service的onDestory方法不会立刻执行,因为有一个与Service绑定的Activity,但是在Activity退出的时候,会执行onDestory,如果要立刻执行stopService,就得先解除绑定

     

    ---------------------------

    把上面的"如果先bindService,再startService"换成"如果先startService,再bindService",结果是一样的

     

     

     

    问题:

     

    如果在一个Activity的onCreate方法中,

    bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);

    再startService(serviceIntent);

    退出这个Activity时,会执行onUnBind

    但是再次进入这个Activity的时候,为什么不执行onBind方法了?只有在这个Service销毁后(执行onDestory),再进这个Activity才会执行onBind

    1 楼 dingran 2011-05-25  
    豆总,您这退出是怎么退出呢?按返回键把Activity弹出任务堆栈?还是直接按HOME键?
    这样情况可是不一样的啊!
    2 楼 lcw1987565 2011-10-26  
    你有重写!OnUnbind()方法吗?这个方法默认是返回false,也就是当你的组件和一个service先绑定,再解绑。然后再和这个 service绑定时,OnUnbind()返回false,就走onbind(),返回的是true,是走的OnRebind().
    3 楼 erichris 2012-05-23  
    你好,博主在么。我遇到了和你这篇文章描述的同样的问题。请问你现在清楚问题的原因了吗?求解。
    4 楼 lhc966 2012-05-23  
    erichris 写道
    你好,博主在么。我遇到了和你这篇文章描述的同样的问题。请问你现在清楚问题的原因了吗?求解。

    后来没怎么用过service,所以这个问题后来没再关注过,你现在的程序出现什么问题了吗
    5 楼 erichris 2012-06-04  
    之前遇到和你这篇博文写的内容完全一样的问题,就是:
    bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);

    再startService(serviceIntent);

    退出这个Activity时,会执行onUnBind

    但是再次进入这个Activity的时候,不执行onBind方法了.

    后来用来后面那位老兄说的,将onunbind的返回值改为true,再次进入activity时会调用onrebind方法,能达到我的目的了
    6 楼 lhc966 2012-06-15  
    erichris 写道
    之前遇到和你这篇博文写的内容完全一样的问题,就是:
    bindService(serviceIntent, conn, Context.BIND_AUTO_CREATE);

    再startService(serviceIntent);

    退出这个Activity时,会执行onUnBind

    但是再次进入这个Activity的时候,不执行onBind方法了.

    后来用来后面那位老兄说的,将onunbind的返回值改为true,再次进入activity时会调用onrebind方法,能达到我的目的了

    学习了,多谢

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    jquery iis7站长之家