安卓之Service简单实现

Service 简介 Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。 生命周期 在安卓的Service 中,有两种类型的srevice 一种是直接通过 startService 启动的servic 其生命周期不受 Activity 的限制,另一种Service 是和Activity 绑定的服务,其生命周期收到与之绑定的 使用服务实现简单音乐播放器 权限声明 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许写手机存储(必须) --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> 界面代码 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/paly" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="92dp" android:layout_marginTop="192dp" android:text="播放" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="192dp" android:layout_marginEnd="104dp" android:text="暂停" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="92dp" android:ems="10" android:inputType="text" android:text="音乐地址" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.457" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> MainActivity.java ...

April 19, 2023 · 2 min · 晚晴

安卓 之 HTTP 访问

安卓 之 HTTP 访问 package cn.shilight.shiguang; import android.util.Log; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class http { String result = "{\"result\":\"10002\"}"; public String POST(String url,String data){ try { URL wz = new URL(url); try { HttpURLConnection HTTP= (HttpURLConnection) wz.openConnection(); HTTP.setDoOutput(true); HTTP.setDoInput(true); HTTP.setRequestMethod("POST"); HTTP.setConnectTimeout(3000); HTTP.setUseCaches(false); HTTP.setRequestProperty("Accept-Encoding","identity"); OutputStream outputStream = HTTP.getOutputStream(); outputStream.write(data.getBytes()); int code = HTTP.getResponseCode(); //获得服务器的响应码 Log.i("服务器:", String.valueOf(code)); InputStream inputStream=HTTP.getInputStream();//获取服务器返回输入流 BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream)); StringBuilder response=new StringBuilder(); String line; while ((line=reader.readLine())!=null){ response.append(line); } result = (response.toString()); } catch (IOException e) { e.printStackTrace(); return result; } } catch (MalformedURLException e ){ e.printStackTrace(); return result; }finally { } return result; } //HTTP请求之 post } 注: ...

February 5, 2022 · 1 min · 晚晴

ANDROID STUDIO 之 自定义字体

在开发安卓程序时,ui的美观性尤为重要,字体也是必须要考虑的问题。 设置方法 在Android Studio中创建assets文件目录 注意在main目录下 将字体拖入到该文件中。 在Java中写入一下代码 TextView tittle; //创建一个textview对象 Typeface kaiti = Typeface.createFromAsset(getAssets(), "字体名称.ttf"); tittle = findViewById(R.id.textView); //通过iu绑定到ui tittle.setTypeface(kaiti);//设置字体

February 12, 2021 · 1 min · 晚晴

安卓 隐藏原生标题栏

安卓的标题 可以再对应的java文件的 setContentView()方法下加入 getSupportActionBar().hide(); Category Android Studio

February 2, 2021 · 1 min · 晚晴

安卓11 HANDLER 初试

 众所周知,安卓官放规定,IU的刷新只能在主线程上操作,而一些费时间的操作则需要放在新的线程上运行,否则就会严重的影响用户的体验,于是我们今天就使用安卓官方的api Handler 对其他线程的信息送回主线程,然后再修改UI的内容, 创建一个类继承于 Handler 重写 handleMassage 方法 class myHandler extends Handler{ public void handMassage(Massage msg){ super.handMassage(msg); //写出你要进行的UI操作} } 创建一个实例对象 private mHandler mhandler = new mHandler(); 创建一个线程 new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(1000); //加了个延迟; i++; //创建一个消息对象 Message msg = Message.obtain(); //所要发送的内容 //放在msg.what中 msg.what = i; //将信息发送给你要发送到的对象 mhandler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start();

January 31, 2021 · 1 min · 晚晴