0

我想改变背景,但我想用定时器来改变它。例如,早上我有一个背景,晚上我有另一个背景。但我不知道在Android中使用什么。如果你有一个例子可以效仿。任何想法?

4

2 回答 2

1

只是为了确保我理解您的意思,您是否想要:

- 一段时间后
更改背景或 - 在不同的白天更改背景?

为了完成第二个,我将在您的 OnCreate() 方法(或任何其他地方,例如 OnResume(),一个按钮单击)中设置一个开关,以查找时间

Time t = new Time();  
t.setToNow();

然后决定使用什么图像

于 2013-05-16T14:09:50.147 回答
0

这是每天重复警报的代码。您将不得不从此活动中取出您需要的代码(对此感到抱歉)。您可以使用此代码设置每天早上 9 点重复的闹钟。您可以在您预期的时间为晚上添加相同的内容。

public class AndroidScheduledActivity extends Activity {
    /** Called when the activity is first created. */
    int id = 115;
    Intent myIntent;
    PendingIntent pendingIntent;
    AlarmManager alarmManager;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button buttonStart = (Button)findViewById(R.id.start);

        myIntent = new Intent(getBaseContext(), MyScheduledReceiver.class);
        myIntent.putExtra("id", id);
        pendingIntent = PendingIntent.getBroadcast(getBaseContext(), id, myIntent, 0);

        alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

        buttonStart.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                setForMonday();
                finish();
            }});
    }

    public void setForMonday() {
        Calendar calendar = Calendar.getInstance();


        calendar.set(Calendar.DAY_OF_WEEK,2);
        calendar.set(Calendar.HOUR,09);
        calendar.set(Calendar.MINUTE, 00);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        System.out.println("Old is set@ :== " + calendar.getTime());


       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pendingIntent);
    }
}

这是警报接收器

public class MyScheduledReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // here you can add the code to change the background

        System.out.println("Receiver");
    }

}

此外,您还必须在清单文件中添加接收器。

于 2013-05-16T14:59:55.753 回答