Computer >> Máy Tính >  >> Lập trình >> Android

Làm cách nào để có được bối cảnh hoạt động tiền cảnh hiện tại trong Android?

Ví dụ này minh họa về Cách lấy ngữ cảnh hoạt động nền hiện tại trong Android

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào src / MyApp.java

package app.tutorialspoint.com.sample ;
import android.app.Activity ;
import android.app.Application ;
public class MyApp extends Application {
   private Activity mCurrentActivity = null;
   @Override
   public void onCreate () {
      super .onCreate() ;
   }
   public Activity getCurrentActivity () {
      return mCurrentActivity ;
   }
   public void setCurrentActivity (Activity mCurrentActivity) {
      this . mCurrentActivity = mCurrentActivity ;
   }
}

Bước 3 - Thêm mã sau vào src / MyBaseActivity.java

package app.tutorialspoint.com.sample ;
import android.app.Activity ;
import android.os.Bundle ;
import android.support.v7.app.AppCompatActivity ;
public class MyBaseActivity extends AppCompatActivity {
   protected MyApp mMyApp ;
   public void onCreate (Bundle savedInstanceState) {
      super .onCreate(savedInstanceState) ;
      mMyApp = (MyApp) this .getApplicationContext() ;
   }
   protected void onResume () {
      super .onResume() ;
      mMyApp .setCurrentActivity( this ) ;
   }
   protected void onPause () {
      clearReferences() ;
      super .onPause() ;
   }
   protected void onDestroy () {
      clearReferences() ;
      super .onDestroy() ;
   }
   private void clearReferences () {
      Activity currActivity = mMyApp .getCurrentActivity() ;
      if ( this .equals(currActivity))
         mMyApp .setCurrentActivity( null ) ;
   }
}

Bước 4 - Thêm mã sau vào src / MainActivity.java

package app.tutorialspoint.com.sample ;
import android.app.Activity ;
import android.support.v7.app.AppCompatActivity ;
import android.os.Bundle ;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate (Bundle savedInstanceState) {
      super .onCreate(savedInstanceState) ;
      setContentView(R.layout. activity_main ) ;
      Activity currentActivity = ((MyApp)
      getApplicationContext()).getCurrentActivity() ;
   }
}

Bước 5 - Thêm mã sau vào androidManifest.xml

<? xml version= "1.0" encoding= "utf-8" ?>
<manifest xmlns: android = "https://schemas.android.com/apk/res/android"
   package= "app.tutorialspoint.com.sample" >
   <uses-permission android :name= "android.permission.CALL_PHONE" />
   <application
      android :name= ".MyApp"
      android :allowBackup= "true"
      android :icon= "@mipmap/ic_launcher"
      android :label= "@string/app_name"
      android :roundIcon= "@mipmap/ic_launcher_round"
      android :supportsRtl= "true"
      android :theme= "@style/AppTheme" >
      <activity android :name= ".MainActivity" >
         <intent-filter>
            <action android :name= "android.intent.action.MAIN" />
            <category android :name= "android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
      <activity android :name= ".MyBaseActivity" />
   </application>
</manifest>