broadcast更新UI

将broadcast定义在activity中。通过调用view中的invalidate更新UI。


DEMO代码:

package com.aiai.www;

import com.aiai.www.Ink_LockScreenView.OnCompleteListener;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class Ink_LockScreenActivity extends Activity {
	private Ink_LockScreenView mInkView;
	private final String ACT_TIME_TICK = "android.intent.action.TIME_TICK";

	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		this.requestWindowFeature(Window.FEATURE_NO_TITLE);

		// this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
		// WindowManager.LayoutParams.FLAG_FULLSCREEN);

		System.out.println("Ink_LockScreenActivity  onCreate");

//		Ink_LockScreenView.istime24_flag = istime24();

		mInkView = new Ink_LockScreenView(this);
		//mInkView.setParentActivity(this);		
		setContentView(mInkView);
		
		
		mInkView.setOnCompleteListener(new OnCompleteListener()
		{
			@Override
			public void onComplete()
			{				 
				Ink_LockScreenActivity.this.finish();
				

			}

			@Override
			public void onEnterContact() {
				// TODO Auto-generated method stub
				Ink_LockScreenActivity.this.finish();
				Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
				startActivity(intent);
			}

			@Override
			public void onEnterMms() {
				// TODO Auto-generated method stub
				Ink_LockScreenActivity.this.finish();
				Intent intent = new Intent();
				intent = getPackageManager().getLaunchIntentForPackage("com.android.mms");				
				startActivity(intent);
			}
		});
		

	}

	
	
	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		
		IntentFilter intentFilter = new IntentFilter(ACT_TIME_TICK);
		registerReceiver(mTimeUpdateBCR, intentFilter);
	}



	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		
		unregisterReceiver(mTimeUpdateBCR);
	}



	private BroadcastReceiver mTimeUpdateBCR = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			// TODO Auto-generated method stub 
 
			System.out.println("time update in activity act:"+intent.getAction());
			
			if(intent.getAction().equals(ACT_TIME_TICK))
			{
				mInkView.invalidate();
				
	
			}

			 
			

		}
	};


}


html:

        <activity android:name=".Ink_LockScreenActivity" >
            <intent-filter>
                <action android:name="android.intent.action.TIME_TICK" />
            </intent-filter>
        </activity>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值