You are right that when your App is deactivated then all processes are stopped - MSDN source:
When the user navigates forward, away from an app, after the Deactivated event is raised, the operating system will attempt to put the app into a dormant state. In this state, all of the application’s threads are stopped and no processing takes place, but the application remains intact in memory.
In your deactivated event you should invoke Cancel request to all your background threads. If you are using aync-await then you can equip those methods with CancellationTokenSource. Here is some more about this: Enabling Progress and Cancellation in Async, Cancel an Async Task or a List of Tasks , and you can find lot of information on Stephen Cleary blog.
As for the question to know which Task is running I think you can use this CancellationTokenSource to check it - if it isn't null then it means that your bacground thread is working.
And as for reacivating your method - everything depends on your code and what that method perform. If you are downloading a group of files then you can remember which are downloaded and after activation call method downloading the rest. If you perform some calculation then you can remember the place where the method stopped and try to resume further calculations. Thought it can be sometimes hard. And you must remember that you have limited time to 10 seconds:
You should not wait until the Deactivated event occurs to store this data. Remember that all application lifecycle events enforce a limit of 10 seconds for an application to complete any tasks.
About other possibilities:
If you want to perform some actions in background proces - then you can use Background agents and Background transfers if you want to download a file. There is also Background audio, but I suppose you are not asking about it.
If you want your app to stay in foreground when lock screen is engaged then you can Deactivate Idle Detection.