• 6月10日学习日志


    今天学习了定时换壁纸。

    首先我们来写一个定时换壁纸的Service:WallPaperService.java

    public class WallPaperService extends Service {
    
        private int current = 0;  //当前壁纸下标
        private int[] papers = new int[]{R.mipmap.gui_1,R.mipmap.gui_2,R.mipmap.gui_3,R.mipmap.gui_4};
        private WallpaperManager wManager = null;   //定义WallpaperManager服务
    
        @Override
        public void onCreate() {
            super.onCreate();
            wManager = WallpaperManager.getInstance(this);
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            if(current >= 4)current = 0;
            try{
                wManager.setResource(papers[current++]);
            }catch(Exception e){e.printStackTrace();}
            return START_STICKY;
        }
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    }

    接着撸个简单的布局,三个Button:activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        
        <Button
            android:id="@+id/btn_on"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开启自动换壁纸" />
    
        <Button
            android:id="@+id/btn_off"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="关闭自动换壁纸" />
    
        <Button
            android:id="@+id/btn_clean"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="清除壁纸" />
    
    </LinearLayout>

    接着是我们的Activity,在这里实例化aManager并设置定时事件~:MainActivity.java

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button btn_on;
        private Button btn_off;
        private Button btn_clean;
        private AlarmManager aManager;
        private PendingIntent pi;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //①获得AlarmManager对象:
            aManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            //②指定要启动的Service,并指明动作是Servce:
            Intent intent = new Intent(MainActivity.this, WallPaperService.class);
            pi = PendingIntent.getService(MainActivity.this, 0, intent, 0);
            bindViews();
        }
    
        private void bindViews() {
            btn_on = (Button) findViewById(R.id.btn_on);
            btn_off = (Button) findViewById(R.id.btn_off);
            btn_clean = (Button) findViewById(R.id.btn_clean);
            btn_on.setOnClickListener(this);
            btn_off.setOnClickListener(this);
            btn_clean.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_on:
                    aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 3000, pi);
                    btn_on.setEnabled(false);
                    btn_off.setEnabled(true);
                    Toast.makeText(MainActivity.this, "自动更换壁纸设置成功", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn_off:
                    btn_on.setEnabled(true);
                    btn_off.setEnabled(false);
                    aManager.cancel(pi);
                    break;
                case R.id.btn_clean:
                    try {
                        WallpaperManager.getInstance(getApplicationContext()).clear();
                        Toast.makeText(MainActivity.this, "清除壁纸成功~", Toast.LENGTH_SHORT).show();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    break;
            }
        }
    }
  • 相关阅读:
    【SSM】Eclipse使用Maven创建Web项目+整合SSM框架(转自:http://www.cnblogs.com/DoubleEggs/p/6243216.html)
    odoo Wkhtmltopdf failed (error code: -11). Memory limit too low or maximum file number of subprocess reached. Message : b''
    odoo 补货规则,当某个位置的产品匹配到多个规则时优先使用序列号最小的规则
    odoo 销售订单确认怎么触发的发货规则
    linux 内核升级
    linux 运维工具之jumpserver
    odoo 关于odoo 的批量拣货
    JIT
    sping+redis实现消息队列的乱码问题
    JVM参数设置
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14910768.html
Copyright © 2020-2023  润新知