`

代码创建LinearLayout,Services监听线程

阅读更多
1.主Activity:
private TextView tx;
	private Button btn;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.main);

		LinearLayout layout = new LinearLayout(this);

		layout.setOrientation(LinearLayout.VERTICAL);

		LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(150, 40);
		param.topMargin = 5;

		tx = new TextView(this);
		tx.setTextSize(16);
		tx.setTextColor(Color.BLUE);
		// tx.setBackgroundResource(R.drawable.x_yellow);
		layout.addView(tx, param);

		btn = new Button(this);
		btn.setText("Exit");
		// btn.setBackgroundResource(R.drawable.earth);
		btn.setOnClickListener(this);

		layout.addView(btn, param);
		this.setContentView(layout);

		String tna = Thread.currentThread().getName();
		Thread.currentThread().setName(tna + "-Ac_and_Se");

		MyService.setUpdateListener(new UpdateUIListener());

		Intent svc = new Intent(this, MyService.class);
		startService(svc);
	}

	public void onClick(View v) {
		this.finish();
	}

	class UpdateUIListener implements IListener {
		public void update(String s) {
			System.out.println("__________________"+s);
			tx.setText(s);
		}
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		{
			Intent svc = new Intent(this, MyService.class);
			stopService(svc);
		}
	}


2.监听线程的Services:
public class MyService extends Service {
	
	// 监听器对象的实例
	private static IListener plis;
	// private static int k = 0;
	private Timer timer = new Timer();
	private String tna;

	public Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			plis.update(tna);
		}
	};

	@Override
	public void onCreate() {
		super.onCreate();
		tna = Thread.currentThread().getName();
		TimerTask task = new TimerTask() {
			@Override
			public void run() {
				handler.sendEmptyMessage(0);
			}
		};
		timer.schedule(task, 1000, 4000);
	}

	@Override
	public IBinder onBind(Intent intent) {
		return null;
	}

	public static void setUpdateListener(IListener listener) {
		plis = listener;
	}

}


3.最后是一个简单的接口:
public interface IListener {
	public void update(String s);
}


当然这个Services一定要在Manifest.xml中进行申明:
<service android:name=".MyService"></service>
分享到:
评论

相关推荐

    《Android SDK范例大全 2-10源代码》

    8. **通知(Notifications)**:这部分代码将展示如何创建和管理通知,包括使用NotificationCompat库创建兼容不同版本Android的通知,以及使用通知频道(Channels)来提高用户体验。 9. **多线程与异步任务**:...

    android代码示例常见

    2. **布局管理器(Layout Managers)**:Android提供多种布局管理器,如LinearLayout、RelativeLayout和ConstraintLayout,用于控制UI元素的排列方式。理解这些布局的工作原理,以及何时选择哪种布局,能有效优化...

    Android例子源码车辆车速预警项目(非常好的源码例子 )

    3. **Location Services**: 利用Google Play服务提供的Location Services,可以获取精确的地理位置信息,包括速度、方向和海拔等。 4. **通知和警告机制**: 当车速超过预设阈值时,应用需要能够触发通知或警告。这...

    Android程序开发范例宝典2015光盘源代码

    2. **Layout设计**:Android提供多种布局管理器,如LinearLayout、RelativeLayout、GridLayout等,源代码会展示如何灵活运用它们来构建复杂的用户界面。 3. **数据存储**:Android支持SQLite数据库、...

    Android程序设计基础源代码

    5. **Layouts**:布局是定义用户界面的方式,常见的有LinearLayout、RelativeLayout、ConstraintLayout等,用于组织和定位应用的UI元素。 6. ** Views & Widgets**:Views是构成用户界面的基本元素,如按钮、文本框...

    Android 范例开发大全

    在第十章的代码中,你可能会发现如何创建、启动和管理Activity,以及如何通过Intent进行Activity间的通信。 2. **Layouts**: Android布局是构建用户界面的基础。从LinearLayout、RelativeLayout到FrameLayout,不同...

    android 开发范例大全2 源代码

    1. **布局管理器(Layout Managers)**:如LinearLayout、RelativeLayout、GridLayout和ConstraintLayout等,它们用于组织和控制屏幕上控件的排列方式。 2. **自定义View**:讲解如何创建和扩展Android的内置视图类...

    Android应用程序开发相关的代码

    10. **Multithreading**:由于Android UI操作必须在主线程中执行,因此为了进行耗时操作(如网络请求或数据库操作),通常需要使用子线程,如AsyncTask、IntentService或使用现代的Coroutines库。 11. **Android ...

    Android应用开发详解教材源码(上册)实例源码

    最后的单元可能包含了一些高级主题,如服务(Services)、广播接收器(BroadcastReceiver)、通知(Notifications)和多线程编程。服务可以长时间运行在后台,广播接收器可以监听系统或自定义事件,而通知则能提醒...

    MyAd_View.rar_android

    2. **布局设计**:在XML布局文件中,开发者需要创建一个视图区域来容纳横幅广告,通常是LinearLayout或RelativeLayout的一部分。 3. **Ad SDK集成**:集成Google AdMob或其他广告网络的SDK,这些SDK提供了必要的API...

    Android经典源码全集(简单易懂)

    5. **BroadcastReceiver**:广播接收器可以监听系统或自定义广播事件,实现异步通信。 6. **Services**:后台运行的服务,不与用户交互,常用于执行长时间任务。 7. **ContentProvider**:数据共享机制,使得应用...

    Android入门的实例代码

    10. **Android SDK**:熟悉Android SDK中的各种服务和API,如多媒体处理(MediaPlayer、ExoPlayer)、网络通信(HttpURLConnection、OkHttp、Retrofit)、通知(Notification)、定位(LocationServices)等。...

    Android基础教程

    5. **事件处理**:理解如何监听用户交互,如点击事件,并编写响应的Java代码进行处理,是Android开发的基础技能。 6. **数据存储**:Android提供了多种数据存储方式,包括SharedPreferences(轻量级偏好设置),...

    Android代码-安卓学习之手机卫士项目

    2. **服务(Services)**:手机卫士可能包含后台运行的服务,如定期扫描病毒、监控内存使用情况等。Service组件用于在后台执行长时间任务,即使用户离开应用程序也能继续运行。 3. **广播接收器(Broadcast ...

    使用AndroidStudio开发的天气预报APP源代码,仿华为原生天气app,安卓大作业

    2. **布局设计**:项目可能采用了XML布局文件来定义用户界面,包括各种视图元素(如TextView、ImageView、RecyclerView等),以及布局管理器(如LinearLayout、RelativeLayout、ConstraintLayout)来组织这些元素,...

    android官网,android developer上的15个例子。

    在Android开发领域,官方网站Android Developer提供了丰富的资源和教程,其中包括一系列实用的例子代码,帮助开发者深入理解和应用Android SDK的各种功能。这些例子涵盖了从基础组件到高级特性的广泛内容,旨在提升...

    Android-App-源码.rar

    7. **异步编程与线程**:Android主线程负责UI操作,因此非UI任务通常在子线程中执行。这可能涉及到AsyncTask、Handler、Thread或使用现代库如Retrofit、Coroutines进行网络请求和数据处理。 8. **依赖注入框架**:...

    Java4Android 04 ppt

    9. **Broadcast Receivers**: 广播接收器可以监听系统广播事件,例如设备重启、网络状态改变等,从而在这些事件发生时执行相应操作。 10. **Threads与AsyncTask**: Android应用的主线程(UI线程)负责处理用户交互...

    Android面试题(1)

    - 讲解不同的布局管理器,如LinearLayout、RelativeLayout、ConstraintLayout的使用场景和特点。 - 介绍自定义View的创建过程,包括绘制和事件处理。 - 讨论如何优化UI性能,例如使用ViewStub、避免嵌套布局和...

    Android PPT

    - **SQLite数据库**:讲解创建、操作SQLite数据库,包括CRUD(创建、读取、更新、删除)操作。 - **File I/O**:学习读写本地文件,了解内部存储和外部存储的区别。 ### 6. 进程和线程 - **进程**:介绍Android进程...

Global site tag (gtag.js) - Google Analytics