Android 安卓如何在系统将要终止应用程序后保持其运行。或者如何不让系统杀死它

Android 安卓如何在系统将要终止应用程序后保持其运行。或者如何不让系统杀死它,android,broadcastreceiver,alarmmanager,Android,Broadcastreceiver,Alarmmanager,安卓。在系统将要终止应用程序后,如何保持其运行? 或者如何不让系统杀死它 我需要支持前台的应用程序。也就是说,每30秒打开一次应用程序,不管它是最小化还是关闭 当应用程序运行时,它会显示在缓存的列表中,方法称为OnReceive。如果应用程序从内存中卸载,它将不再触发活动 使用AlarmManager、BroadcastReceiver [BroadcastReceiver] [IntentFilter(new[] { Intent.ActionPowerConnected })] public

安卓。在系统将要终止应用程序后,如何保持其运行? 或者如何不让系统杀死它

我需要支持前台的应用程序。也就是说,每30秒打开一次应用程序,不管它是最小化还是关闭

当应用程序运行时,它会显示在缓存的列表中,方法称为OnReceive。如果应用程序从内存中卸载,它将不再触发活动

使用AlarmManager、BroadcastReceiver

[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionPowerConnected })]
public class MyAppReciever : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        Intent intent1 = new Intent(context, typeof(Activity1));
        intent1.AddFlags(ActivityFlags.NewTask);
        context.StartActivity(intent1);
    }
}
Activity1.OnCreate

...
Intent intent = new Intent(this, typeof(MyAppReciever));
PendingIntent sender = PendingIntent.GetBroadcast(this, 0, intent,PendingIntentFlags.UpdateCurrent);
AlarmManager am = (AlarmManager)GetSystemService(AlarmService);
am.SetRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime()+30000,30000,sender);
广播接收机

[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionPowerConnected })]
public class MyAppReciever : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        Intent intent1 = new Intent(context, typeof(Activity1));
        intent1.AddFlags(ActivityFlags.NewTask);
        context.StartActivity(intent1);
    }
}
显示

    ....
    <uses-permission android:name="android.permission.WAKE_LOCK" />
  <receiver android:name="AndroidApplicationTest.MyAppReciever">
        <intent-filter>
                <action android:name="android.intent.action.POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
        </intent-filter>
  </receiver>
UPD 1

让我们简化这个例子。例如,我希望定期打开应用程序以显示当前活动。程序如下:双击图标运行应用程序,然后按home按钮最小化。应用程序将显示在缓存中的工作应用程序中。开始积极使用手机时,我的应用程序会逐渐被替换,并从工作应用程序中消失。例如,第一次运行一小时后,我希望应用程序重新打开初始活动。我希望AlarmManager在接收事件中出现,在该事件中,拼写的活动打开主应用程序


我做错了什么?

你的意图有问题。使用相同的动作和类别来匹配接收器意图过滤器,以唤醒接收器

最终,你无法阻止android停止你的活动。出现任何内存危机时,都不能保证应用程序会运行。为避免被杀死,在后台运行的服务的优先级最低。但是使用你的服务。启动你的android,告诉它运行后台服务,内存可用。因此,该服务只是一个android组件,您可以为您的应用程序继续运行,但也没有任何保证

更新1中描述的染色过程有问题,请阅读,可能会澄清情况