android 如何监听程序安装完成

android 如何监听程序安装完成,第1张

android系统中,当碧瞎应用安装完成以后会发出一个广播action的值为android.intent.action.PACKAGE_ADDED。只要监听这个广播就可以了。

监听方法悉慧核,创建一个BroadcastReceiver,注册睁掘时添加过滤器,过滤器中添加以上action。

完成以上步骤,当应用安装完成后,你的应用就会收到广播。

一、通过ActivityManager.RunningAppProcessInfo判断

首先,我们需要写一个BaseActivity,然后让我们应用程序的Activity都继承自BaseActivity,这样就可以统一管理,然后在BaseActivity的onResume()和onStop()方法中进行判断应用程序是否进入到后台并且是否从后台返回到了前台,直接看代码:

public class BaseActivity extends Activity {

    public static boolean isActive //全局变量

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_base)

    }

    @Override

    protected void onResume() {

        if (!isActive) {

            //app 从后台唤醒,进入前台

            isActive = true

            Log.i("ACTIVITY", "程序从后台唤醒")

        }

        super.onResume()

    }

    @Override

    protected void onStart() {

        super.onStart()

    }

    @Override

    protected void onPause() {

        super.onPause()

    }

    @Override

    protected void onStop() {

        if (!isAppOnForeground()) {

            //app 进入后台

      纳雀芦      isActive = false//记录当前已经进入后台

            Log.i("ACTIVITY", "程序进入后台")

        }

        super.onStop()

    }

    @Override

    protected void onDestroy() {

        super.onDestroy()

    }

    /**

     * APP是否处于前台唤醒状态

     *

     * @return

     */

    public boolean isAppOnForeground() {

        ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE)

        String packageName = getApplicationContext().getPackageName()

        List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager

                .getRunningAppProcesses()

        if (appProcesses == null)

            return false

     岁物   for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {

            // The name of the process that this object is associated with.

      洞带      if (appProcess.processName.equals(packageName)

                    && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {

                return true

            }

        }

        return false

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12432335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存