ActivityManager (3) -- determines that the application returns to the foreground from the background, and activitymanager

Source: Internet
Author: User

ActivityManager (3) -- determines that the application returns to the foreground from the background, and activitymanager

MainActivity is as follows:

Package cc. testbackgroundtofront; import java. util. list; import android. app. activity; import android. app. activityManager; import android. app. activityManager. runningTaskInfo; import android. content. componentName; import android. content. context; import android. content. sharedPreferences; import android. content. sharedPreferences. editor; import android. OS. bundle; import android. preference. preferenceManager; import Android. widget. toast;/*** Demo description: * determines that the application returns to the front end from the background * that is, press the Home Key and re-enter the application */public class MainActivity extends Activity {@ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. main) ;}@ Overrideprotected void onResume () {super. onResume () ;}@ Overrideprotected void onRestart () {super. onRestart (); SharedPreferences prefs = PreferenceManager. getDe FaultSharedPreferences (getApplicationContext (); boolean isCurrentRunningForeground = prefs. getBoolean ("isCurrentRunningForeground", false); if (! IsCurrentRunningForeground) {Toast. makeText (MainActivity. this, "back from the background", Toast. LENGTH_SHORT ). show () ;}@ Overrideprotected void onStop () {super. onStop (); try {Thread. sleep (1000); new Thread () {public void run () {boolean isCurrentRunningForeground = isRunningForeground (); SharedPreferences prefs = PreferenceManager. getdefasharsharedpreferences (getApplicationContext (); Editor editor = prefs. edit (); editor. putBoo Lean ("isCurrentRunningForeground", isCurrentRunningForeground); editor. commit ();};}. start () ;}catch (Exception e) {}} public boolean isRunningForeground () {String packageName = getPackageName (this); String topActivityClassName = getTopActivityName (this); System. out. println ("packageName =" + packageName + ", topActivityClassName =" + topActivityClassName); if (packageName! = Null & topActivityClassName! = Null & topActivityClassName. startsWith (packageName) {System. out. println ("---> isRunningForeGround"); return true;} else {System. out. println ("---> isRunningBackGround"); return false ;}} public String getTopActivityName (Context context) {String topActivityClassName = null; ActivityManager activityManager = (ActivityManager) (context. getSystemService (android. content. context. ACTIVITY_SERVICE); // android. ap P. activityManager. getRunningTasks (int maxNum) // int maxNum ---> The maximum number of entries to return in the list // RunningTaskInfo) quantity List <RunningTaskInfo> runningTaskInfos = activityManager. getRunningTasks (1); if (runningTaskInfos! = Null) {ComponentName f = runningTaskInfos. get (0 ). topActivity; topActivityClassName = f. getClassName ();} // press the Home keyboard and topActivityClassName = com. android. launcher2.Launcher return topActivityClassName;} public String getPackageName (Context context) {String packageName = context. getPackageName (); return packageName ;}}


 

Main. xml is as follows:

<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent"> <TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "determine whether the application is returned from the background to the foreground" android: layout_centerInParent = "true"/> </RelativeLayout>


 


How can I listen to the android program and restore it to the foreground ??

The program calls onStop () in the background and then calls onResume () in the foreground ()
 
What is the foreground and background of the application?

Foreground refers to the program that uses the operation. The background is a program that manages foreground operations and records operation data.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.