Android 在AlramManager中,如何检查应用程序是否打开或关闭

Android 在AlramManager中,如何检查应用程序是否打开或关闭,android,xamarin.android,alarmmanager,Android,Xamarin.android,Alarmmanager,根据这个链接()我可以看到“时间到了…现在振动!!!”。 当我的应用程序关闭时,我可以看到“时间到了…现在振动!!!”。到目前为止一切都很好 我的问题是: 1.Whit AlramManager,如何检查应用程序是否打开或关闭 2.如果应用程序已关闭,我如何打开它 编辑: 我编辑了我的应用程序,但当我的应用程序未处于调试模式(即关闭)时,我再次看到“应用程序正在运行”。为什么?我想在应用程序关闭时打开它 namespace AlarmManage { [BroadcastReceiver

根据这个链接()我可以看到“时间到了…现在振动!!!”。 当我的应用程序关闭时,我可以看到“时间到了…现在振动!!!”。到目前为止一切都很好

我的问题是:

1.Whit AlramManager,如何检查应用程序是否打开或关闭

2.如果应用程序已关闭,我如何打开它

编辑:

我编辑了我的应用程序,但当我的应用程序未处于调试模式(即关闭)时,我再次看到“应用程序正在运行”。为什么?我想在应用程序关闭时打开它

namespace AlarmManage
{
    [BroadcastReceiver(Enabled = true)]
    public class MyBroadcastReceiver : BroadcastReceiver 
    {
        private static bool activityVisible;

        public override void OnReceive(Context context, Intent intent)
        {
            Toast.MakeText(context, "Time Up... Now Vibrating !!!",
                    ToastLength.Long).Show();
            Vibrator vibrator = (Vibrator)context
                    .GetSystemService(Context.VibratorService);
            vibrator.Vibrate(2000);
            //Application.Context.StartActivity(new Intent(context, typeof(MainActivity)));

            if (CheckRunningApplicationReceiver.isAppRunning(context, "AlarmManage.AlarmManage"))
            {
                // App is running
                Toast.MakeText(context, "App is running", ToastLength.Long).Show();
            }
            else
            {
                // App is not running
                // intent to lounch ur app. 
                Toast.MakeText(context, "App is not running", ToastLength.Long).Show();
            }
        }
    }
}


namespace AlarmManage
{
    public class CheckRunningApplicationReceiver
    {
        static bool flag = false;
        public static bool isAppRunning(Context context, String packageName)
        {
            ActivityManager activityManager = (ActivityManager)context.GetSystemService(Context.ActivityService);
            //List<Android.App.ActivityManager.RunningAppProcessInfo> processInfo = activityManager.RunningAppProcesses;
            for (int i = 0; i < activityManager.RunningAppProcesses.Count; i++)
            {
                if (activityManager.RunningAppProcesses[i].ProcessName.Equals("AlarmManage.AlarmManage"))   // make sure your package address of that specific app.
                {
                    //Another App is running
                    Toast.MakeText(context, activityManager.RunningAppProcesses[i].ProcessName.ToString(), ToastLength.Long).Show();
                    flag = true;
                    return flag;
                }
            }
            return flag;
        }
    }
}

1]在util类中创建一个方法

 public static boolean isAppRunning(final Context context, final String packageName) {
            final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
            if (procInfos != null)
            {
                for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
                    if (processInfo.processName.equals(packageName)) {
                        return true;
                    }
                }
            }
            return false;
        }

谢谢你,拉迪。我收到此错误:无法将类型“android.app.activitymanager.runningappprocessinfo”隐式转换为“system.collections.generic.list”
 public static boolean isAppRunning(final Context context, final String packageName) {
            final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
            if (procInfos != null)
            {
                for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
                    if (processInfo.processName.equals(packageName)) {
                        return true;
                    }
                }
            }
            return false;
        }
if (Utils.isAppRunning(YourActivity.this, "com.your package name")) {
    // App is running
} else {
    // App is not running
    // intent to lounch ur app. 
}