-
public class MainActivity extends Activity { private Button btn; private GestureDetector gd; class myGestureListener extends SimpleOnGestureListener{ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {//e1:开始的动作;e2:结束的动作。 if(e1.getX()-e2.getX()>50){ Toast.makeText(MainActivity.this, "从右向左滑动!", 1).show(); }else if(e2.getX()-e1.getX()>50){ Toast.makeText(MainActivity.this, "从左向右滑动!", 1).show(); } return super.onFling(e1, e2, velocityX, velocityY); } } @Override protected void onCreate(...) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button) findViewById(R.id.button1); gd=new GestureDetector(new myGestureListener()); btn.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { gd.onTouchEvent(event); return true; } }); }查看全部
-
手势交互过程原理 1.触屏一刹那,出发MotionEvent 2.被OnTouchListener监听,在onTouch()中获得MotionEvent对象 3.GestureDetector转发MotionEvent对象到OnGestureListener 4.OnGestureListener获得该对象查看全部
-
@权限: android.permission.ACCESS_WIFI_STATE android.permission.CHANGE_WIFI_STATE android.permission.GET_TASKS Ps:public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum):可以得到系统当前正在运行的Task列表,用maxNum限制要获取的数量(最近使用的最先取出)。查看全部
-
case R.id.wifi: WifiManager mWifiManager=(WifiManager) MainActivity.this.getSystemService(WIFI_SERVICE); if(mWifiManager.isWifiEnabled()){ mWifiManager.setWifiEnabled(false); Toast."WIFI已经关闭!"; }else{ mWifiManager.setWifiEnabled(true); Toast."WIFI已经打开!"; } break; case R.id.voice: AudioManager mAudioManager = (AudioManager) MainActivity.this.getSystemService(AUDIO_SERVICE); int max=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_SYSTEM); int current=mAudioManager.getStreamVolume(AudioManager.STREAM_RING); Toast."系统最大音量为:"+max+",当前音量是:"+current; break; case R.id.packagename: ActivityManager mActivityManager = (ActivityManager) MainActivity.this.getSystemService(ACTIVITY_SERVICE); String packageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName(); Toast."当前运行的Activity包名:"+packageName; break; } }查看全部
-
onCreate(...) { super.onCreate(savedInstanceState); /*LayoutInflater inflater = (LayoutInflater) MainActivity.this .getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.activity_main, null); setContentView(view);//取得XML里定义的View*/ setContentView(R.layout.activity_main); } public void doClick(View v) { switch (v.getId()) { case R.id.net: if(isNetWorkConnected(MainActivity.this)==true){ Toast."网络已开启!"; }else{ Toast."网络未开启!"; } break; } public boolean isNetWorkConnected(Context context){ if(context!=null){ ConnectivityManager mConnectivityManager=(ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if(mNetworkInfo!=null){ return mNetworkInfo.isAvailable(); } } return false; } 权限:android.permission.ACCESS_NETWORK_STATE查看全部
-
SQLiteOpenHelper查看全部
-
判断网络是否连接 public boolean isNetworkConnected(Context context) { // 判断网络的方法 if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager .getActiveNetworkInfo();// 获取网络连接状态信息 if (mNetworkInfo != null) {// 如果不为空 return mNetworkInfo.isAvailable();// 返回网络状态属于活动状态 } } return false; } 判断wifi连接状态和改变wifi状态方法 WifiManager wifimanager=(WifiManager) MainActivity.this.getSystemService(WIFI_SERVICE); if(wifimanager.isWifiEnabled()){ wifimanager.setWifiEnabled(false);//关闭wifi方法 Toast.makeText(MainActivity.this, "wifi已经关闭", Toast.LENGTH_LONG).show(); }else{ wifimanager.setWifiEnabled(true); Toast.makeText(MainActivity.this, "wifi已经打开", Toast.LENGTH_LONG).show();查看全部
-
ContentValues查看全部
-
常用系统服务: 1.MountService:监听是否有SD卡安装及移除 2.ClipboardService:提供剪切板功能 3.PackageManagerService:提供软件包的安装移除及查看 4.电量,网络连接状态等等 使用的时候通过getSystemService()的方法来实现: 这是一个Activity的一个方法,通过传入name->object>服务对象查看全部
-
public void doClick(View v){ switch (v.getId()) { case R.id.start: intent1=new Intent(MainActivity.this, MyStartService.class); startService(intent1); break; case R.id.stop: stopService(intent1); break; case R.id.bind: intent2=new Intent(MainActivity.this,MyBindService.class); startService(intent2);//有必要时推荐:结合使用 bindService(intent2, conn, BIND_AUTO_CREATE);//第三个参数:自动创建 break; case R.id.play: bindservice.play(); break; ...//其他三个类似 case R.id.unbind: unbindService(conn); break; } } PS1:StartService开启后onCreate只会调用一次,再点击StartService不会再调用,直接调用onStartCommand;而BindService开启后onCreate和onBind都只调用一次,再点击也不会调用。 PS2:StopService点击多次,只调用一次,但是不会报错;而UnBindService点击多次,虽只调用一次,但是会报错。 启动源(个人理解:Activity): Start方式:可以不需要界面(UI),但是服务还存在,但是数据不能返回。 Bind方式:与界面共存亡。 -有必要推荐Start与Bind一起结合使用。查看全部
-
public class MainActivity extends Activity { Intent intent1; Intent intent2; MyBindService bindservice; ServiceConnection conn=new ServiceConnection() { @Override//当启动源跟Service的连接意外丢失的时候会调用这个方法,但是当Service取消绑定是不会调用这个方法的。如:当Service崩溃了或被强行杀死了。 public void onServiceDisconnected(ComponentName name) { } @Override//当启动源跟Service成功连接之后将会自动调用这个方法 public void onServiceConnected(ComponentName name, IBinder binder) { bindservice=((MyBinder)binder).getService(); } }; @Override protected void onCreate(...) { ... } @Override protected void onDestroy() {//如果结合使用startService(Intent intent),一定要调用这个重写这个方法。 super.onDestroy(); stopService(intent2); unbindService(conn); }查看全部
-
public class MyBindService extends Service { @Override public void onCreate() { Log.i("TAG", "BindService_onCreate"); super.onCreate(); } @Override public void unbindService(ServiceConnection conn) { Log.i("TAG", "BindService_unbindService"); super.unbindService(conn); } public class MyBinder extends Binder{ public MyBindService getService(){ return MyBindService.this;//返回当前服务对象 } } @Override public IBinder onBind(Intent intent) { Log.i("TAG", "BindService_onBind"); return new MyBinder();//返回一个数据类 } @Override public void onDestroy() { Log.i("TAG", "BindService_onDestroy"); super.onDestroy(); } public void play(){ Log.i("TAG", "播放"); } //其他三个类似 }查看全部
-
start式Service启动与停止 public void doClick(View v){ switch (v.getId()) { case R.id.start: intent1=new Intent(MainActivity.this, MyStartService.class); startService(intent1); break; case R.id.stop: stopService(intent1); break; } } //Service类 public class MyStartService extends Service { @Override public void onCreate() { Log.i("TAG", "Service_onCreate"); super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i("TAG", "Service_onStartCommand"); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Log.i("TAG", "Service_onDestroy"); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { return null; } } Ps:开启后onCreate只会调用一次,再点击StartService不会再调用,直接调用onStartCommand。查看全部
-
Service是在后台运行,不可见也没有界面,优先级高于Activity的组件。 主要用于播放音乐、记录信息等后台操作。 但是需要注意的是Service运行在主线程中,不能用它来做耗时操作。 服务分为本地服务分为远程服务 本地服务:本地服务是程序内的服务有两套启动机制。start方式、Bind方式 远程服务:是同一个Android系统中的应用程序间的服务、有IBinder接口 非绑定式的service的生命周期 startService()--->onCreate()--->onStartCommand()--->ServingRunning--->onStop()--->onDestory()服务停止 绑定式的service的生命周期 bindService()--->onCreate()--->onBind()--->用户与服务绑定 在解绑服务 onUnbind()--->onDestory()服务停止查看全部
-
异步广播 private BC3 bc3;//全局变量 case R.id.button3://异步广播 Intent intent3=new Intent(); intent3.putExtra("msg", "这是一条异步广播!"); intent3.setAction("BC_Three"); sendStickyBroadcast(intent3); //若先发消息后注册可以成功,则有异步效果。 IntentFilter intentFilter=new IntentFilter("BC_Three"); intentFilter.setPriority(100); bc3=new BC3(); registerReceiver(bc3, intentFilter); break; //动态注册的必须销毁APP时解除注册 @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(bc3); } <uses-permission android:name="android.permission.BROADCAST_STICKY"></uses>查看全部
举报
0/150
提交
取消