You want "application should have the function of receiving reports from another device at a specific time." OK, then you must use a Stay Awake routine to keep the Android device running in the foreground . App Inventor 2 apps CAN NOT run in the background.
To do what you want to do, your App Inventor app must run continually in the foreground.
A solution? Use a professional compiler like Android Studio or B4A or Delphi Community Edition that will allow your app to run in the background as a Service instead of App Inventor.
To read messages by phone number your Block code could be something like this (simpler code than you posted)
If you do that, your app probably must still be awake when you expect a response in order to execute any special instructions. Why "and when the application is not running they will be queued and a notification displayed to the user. (option 3 for a response) might work. The code in your Blocks will NOT execute unless the app is active because the text will be queued.
You have a lot of experimenting to do. If you can save the message queue to a TinyDB you might "be able to check the latest messages when starting the app by recalling the TinyDB. Can that be done? I don't know, possibly by loading the queue in the Screen1.Initialize block. Experiment and let us know what you find. It might not be possible.