zoukankan      html  css  js  c++  java
  • Android ActivityManager与WindowManager

        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 使用SYSTEM_ALERT_WINDOW时必须要加 -->
     
    import android.app.Activity;
    import android.app.ActivityManager;
    import android.content.Context;
    import android.content.Intent;
    import android.graphics.Color;
    import android.graphics.PixelFormat;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.ViewGroup.LayoutParams;
    import android.view.WindowManager;
    import android.widget.TextView;
    public class MainActivity extends Activity {
        private ActivityManager mActivityManager;
    
        private Handler popupHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                case 0:
                    String packageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
                    Log.e("log", packageName + System.currentTimeMillis());
                    if (packageName.equals("com.some.app.name")) {
                        popupHandler.sendEmptyMessage(1);
                    }
                    if (isRunning) {
                        popupHandler.sendEmptyMessageDelayed(0, 3500);
                    }
                    break;
                case 1:
                    Log.e("log", "mWindowManager");
    
                    if (!isAdd) {
                        startActivity(new Intent(MainActivity.this, MainActivity.class));
                        mWindowManager.addView(mTrackingText, lp);
                        isAdd = true;
                    }
                    break;
                }
            }
        };
        WindowManager mWindowManager;
        private boolean isRunning = true;
        WindowManager.LayoutParams lp;
        TextView mTrackingText;
        boolean isAdd;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
            mTrackingText = new TextView(MainActivity.this);
            mTrackingText.setTextColor(Color.BLUE);
            mTrackingText.setTextSize(55);
            mTrackingText.setText("00:00");
            lp = new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
                    WindowManager.LayoutParams.TYPE_APPLICATION,
                    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                    PixelFormat.TRANSLUCENT);
            isRunning = true;
            popupHandler.sendEmptyMessageDelayed(0, 3500);
        }
    }
    
    
    
    
    
  • 相关阅读:
    MySQL批量删除指定前缀表
    jquery--checkbox全选/全不选
    jquery--监听checkbox多选框是否选中,展示输入框
    shell--脚本之间传值,模仿jenkins内置变量的功能
    python--os模块递归本地目录
    python--脚本添加定时任务
    paramiko--密钥连接远端服务器并递归目录
    django--完成客户端下载文件的三种方式
    python--如何给dict字典类型排序
    python--时间相差8小时问题
  • 原文地址:https://www.cnblogs.com/niray/p/4737290.html
Copyright © 2011-2022 走看看