对于Android开发中多线程的应用,常见是多个任务的同时进行,那么这里举一个例子:实现2个窗口同时卖火车票;每个窗口卖100张,卖票速度都是1s/张。具体该如何做呢?下面专业app开发报价燚轩科技来为大家讲解一下。
main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.carson_ho.demoforthread.MainActivity">
//设置一个按钮用以启动卖票
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击开始卖票"
android:layout_centerInParent="true"
/>
</RelativeLayout>
MainActivity.java
package com.example.carson_ho.demoforthread;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
//主布局中定义了一个按钮用以启动线程
Button button;
//步骤1:创建线程类,继承自Thread类
private class MyThread extends Thread{
private int ticket = 100;//一个窗口有100张票
private String name; //窗口名, 也即是线程的名字
public MyThread(String name){
this.name=name;
}
//在run方法里复写需要进行的操作
@Override
public void run(){
while (ticket>0){
ticket--;
System.out.println(name + "卖掉了1张票,剩余票数为:"+ticket);
try {
Thread.sleep(1000);//卖票速度是1s一张
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Button按下时会开启一个新线程执行卖票
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//步骤2:创建线程类的实例
//创建二个线程,模拟二个窗口卖票
MyThread mt1 = new MyThread("窗口1");
MyThread mt2 = new MyThread("窗口2");
//步骤3:调用start()方法开启线程
//启动二个线程,也即是窗口,开始卖票
mt1.start();
mt2.start();
}
});
}
}
测试结果如下:
好了,看到这里大家也都清楚运行的流程了,如果还存在疑问的话可以留言咨询我们。
s="MsoNormal"> ...
s="MsoNormal"> ...
亮度蒙版是影调调整的基石。它提供了一个简便的方法来选取图...
s="p"> <span...
目前大家经常会遇到抠图的问题,最多的就是抠人体、头发,抠...
请扫二维码联系客服
854221200@qq.com
185-3825-9583
QQ客服
关于  ·  招聘  ·  案例中心  ·  网站地图
©@2018 燚轩科技版权所有 豫ICP备16015002号-4
百度提供搜索支持