5
回答
求大神帮忙解决技术问题!我实在是没有办法了!
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

我在做一个这样的功能!在本地有个sqllite的数据库task表

有个写标题和内容和选择时间的界面为alram_activity。

还有一个主要显示,在sqllite里面的数据,用listview控件显示的界面为main_activity


,程序在运行的时候!会有个后台线程service在每隔3分钟,从sqlite数据库里面查询数据,并且将查询的数据传给main_activity界面,并在listview空间里面及时进行显示,并且当有新的数据从sqlite里面被查询到的时候,会弹出一个对应内容数据的广播

而数据的添加是在alram_activity页面上进行的


求大神帮帮忙

本人写的越来越乱了------附上没完成的工程

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class AlarmActivity extends Activity {
    Button btn_tj;
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.alarm_activity);
		
		btn_tj=(Button) findViewById(R.id.button1);
		btn_tj.setOnClickListener(new OnClickListener() 
		{
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				sentAlarmdate();
			}

			
		});
	}
public class GetTaskSevice extends Service
{
    /**执行Timer进度**/
    public final static int LOAD_PROGRESS = 0; 
    
    /**关闭Timer进度**/
    public final static int CLOSE_PROGRESS = 1;
    
    /**Timer对象**/
    Timer mTimer = null;
    
    /**TimerTask对象**/
    TimerTask mTimerTask = null;
   
    /**记录TimerID**/
    int mTimerID = 0;
    
    //sqllite数据查询
    TaskHelper mDbHelper = null;
	SQLiteDatabase mDb = null;
	Context mContext = null;
	
   
    //查询数据库表语句
    private static final String GET_TABLE="select * from task";

	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		//启动线程
		StartTimer();

	}



	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
	}

	 /**接收传递过来的信息**/
    Handler handler = new Handler() 
    {
	@Override
	public void handleMessage(Message msg) 
	{
	    switch (msg.what) {
	    case LOAD_PROGRESS:
//		mTextView.setText("当前TimerID为" + msg.arg1 );
//执行查询方法
	    	gettaskdata();
		break;
	    case CLOSE_PROGRESS:
//		mTextView.setText("当前Timer已经关闭请重新开启" );
		break;
	    
	    }
	    super.handleMessage(msg);
	}
	
    };
	
	public void StartTimer() 
	{

		if (mTimer == null) 
		{
		   mTimerTask = new TimerTask() 
		   {
				public void run() 
				{
				    //mTimerTask与mTimer执行的前提下每过1秒进一次这里
				    mTimerID ++;
				    Message msg = new Message();
				    msg.what = LOAD_PROGRESS;
				    msg.arg1 = (int) (mTimerID);
				    handler.sendMessage(msg);
				}
			};
			    mTimer = new Timer();
			  
			    //第一个参数为执行的mTimerTask
			    //第二个参数为延迟的时间 这里写1000的意思是mTimerTask将延迟1秒执行
			    //第三个参数为多久执行一次 这里写1000表示每1秒执行一次mTimerTask的Run方法
			    mTimer.schedule(mTimerTask, 1000, 1000);
		}

     }

     public void CloseTimer() 
     {

		//在这里关闭mTimer 与 mTimerTask
		if (mTimer != null)
		{
			mTimer.cancel();
			mTimer = null;
		}
			if (mTimerTask != null)
			{
			    mTimerTask = null;
			}
			
	    /**ID重置**/
		mTimerID = 0;
			
		//这里发送一条只带what空的消息
	    handler.sendEmptyMessage(CLOSE_PROGRESS);
	 }  
		    
	 //查询sqllite里面的数据,并且将数据传送给mainactivity里面的list列表里面展示
	private void gettaskdata() 
	{
	// TODO Auto-generated method stub
		mContext = this;
		//创建DatabaseHelper对象      
		mDbHelper = TaskHelper.getInstance(mContext);
		//调用getReadableDatabase方法如果数据库不存在 则创建  如果存在则打开
		mDb= mDbHelper.getReadableDatabase(); 
		
		Cursor cursor = mDb.rawQuery(GET_TABLE, null);
	    
		Bundle bundle = new Bundle();  
		
		while (cursor.moveToNext()) 
		{ 		    
		     bundle.putInt("id",cursor.getInt(0)); 
		     bundle.putString("title", cursor.getString(1)); 
		     bundle.putString("confent", cursor.getString(2));
		     bundle.putInt("deadline",cursor.getInt(3));
		     bundle.putInt("flog",cursor.getInt(4)); 
        }  
    				
		Intent intent = new Intent(mContext,MainActivity.class);   
	     //把数值放进bundle 然后在把整个bundle通过intent.putExtra()传递  
	     //在这里把整个bundle 放进intent中  
	     intent.putExtras(bundle);  
	     //开启一个新的 activity 将intent传递过去  
	     startActivity(intent);  
		 cursor.close(); 
		 mDb.close(); 
	}
	
}





举报
帝鱼
发帖于3年前 5回/433阅
顶部