Android
16lz
2021-12-04
1、Android从网上下载文件
2、android实现多线程
3、Android中的广播机制
Android中之所以叫广播机制,其实就类似于我们平常现实生活中的广播,比如当android系统收到一个一条短信时,这时候就会向其他注册了广播并对此广播事件感兴趣的程序发出消息,当别的应用程序收到改广播时,就会对该事件进行一定的处理。
方法一,通过配置AndroidManifest.xml文件,新增
方法二:通过代码注册广播
注意两种方法都要在AndroidManifest.xml中添加上如下配置信息:
3、Android中的ListView使用方法
URL url=null;try {url = new URL("http://192.168.1.100/Test/111.mp3");HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();BufferedInputStream bis = new BufferedInputStream(urlConn.getInputStream());FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory().getName()+"\\music\\6.mp3");BufferedOutputStream bos = new BufferedOutputStream(fos);byte[] buf = new byte[3 * 1024];int result = bis.read(buf);while (result != -1) {bos.write(buf, 0, result);result = bis.read(buf);}bos.flush();bis.close();fos.close();bos.close();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
<uses-permission android:name="android.permission.INTERNET"/><!--访问网络-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--访问sd卡-->
2、android实现多线程
package cd.edu.app;import android.app.Activity;import android.os.Bundle;import android.os.HandlerThread;import android.os.Message;import cn.edu.subclass.MyHandler;public class AndroidThreadActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); HandlerThread handThread=new HandlerThread("app"); handThread.start(); MyHandler myHand=new MyHandler(handThread.getLooper()); Message msg=myHand.obtainMessage(); msg.sendToTarget(); System.out.println(Thread.currentThread().getName()); } }
package cn.edu.subclass;import android.os.*;public class MyHandler extends Handler{public MyHandler(Looper loop){super(loop);}public void handleMessage(Message message){System.out.println(Thread.currentThread().getName());}}
3、Android中的广播机制
Android中之所以叫广播机制,其实就类似于我们平常现实生活中的广播,比如当android系统收到一个一条短信时,这时候就会向其他注册了广播并对此广播事件感兴趣的程序发出消息,当别的应用程序收到改广播时,就会对该事件进行一定的处理。
方法一,通过配置AndroidManifest.xml文件,新增
<receiver android:name="cn.edu.subclass.MyBroadCastReceiver"><intent-filter > <!--action中的标签代表感兴趣的广播,此时我们对接收短信感兴趣--><action android:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>此时,如果系统收到短信,就会将广播信息传给该程序,该程序此时在那里处理这个广播呢,这时候我们就需要继承一个类,并重写其中的方法,如下
package cn.edu.subclass;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class MyBroadCastReceiver extends BroadcastReceiver{public MyBroadCastReceiver(){System.out.println("constructed!");}@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubSystem.out.println("OK");}}当系统收到短信信后就会输出OK,也就是执行上面的onReceive方法
方法二:通过代码注册广播
package cn.edu.design;import android.app.Activity;import android.content.IntentFilter;import android.os.Bundle;import cn.edu.subclass.MyBroadCastReceiver;public class AndroidBroadCastActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyBroadCastReceiver my=new MyBroadCastReceiver(); IntentFilter filter=new IntentFilter(); filter.addAction("android.provider.Telephony.SMS_RECEIVED"); this.registerReceiver(my, filter); }}
package cn.edu.subclass;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class MyBroadCastReceiver extends BroadcastReceiver{public MyBroadCastReceiver(){System.out.println("constructed!");}@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubSystem.out.println("OK");}}方法一和方法二的区别是:方法一在程序关闭的时候,也会收到广播,执行其中的onReceive,方法二只会在程序开启的时候才会接收广播,执行onRecive方法,如果方法二种要移除该广播,可以调用unregisterReciver方法.
注意两种方法都要在AndroidManifest.xml中添加上如下配置信息:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
3、Android中的ListView使用方法
package cn.edu.ui;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.ListActivity;import android.os.Bundle;import android.widget.SimpleAdapter;public class Mp3PlayerActivity extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); List<Map<String,String>> list=new ArrayList<Map<String,String>>(); Map<String,String> map1=new HashMap<String,String>(); map1.put("name", "Hello"); map1.put("size", "1000"); list.add(map1); SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.mylistview,new String []{"name","size"},new int [] {R.id.name,R.id.size}); setListAdapter(simpleAdapter); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ListView android:id="@id/android:list" android:drawSelectorOnTop="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scrollbars="vertical"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/size" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
更多相关文章
- ch024 Android(安卓)BroadCastReceiver
- ch024 Android(安卓)BroadCastReceiver
- Android(安卓)O 版本(Android(安卓)8.0) 存储空间不足时提醒
- 对Android应用进行单元测试
- android唤醒屏幕--保持屏幕唤醒-Reprinted
- Android(安卓)TV listView焦点平滑移动
- Android单元测试学习记录
- Android(安卓)SDK Manager无法更新解决方法
- android 属性动画