Закрыть запущенную деятельность в моем случае

У меня есть класс, который не расширяет активность или фрагмент. Это независимый класс. Я хотел бы использовать этот класс для контроля начала и окончания Деятельности.

public class MyActivityManager() {
   public MyActivityManager(Context context) {
      mContext = context;
   }

   public void startMainActivity() {
      Intent intent = new Intent(mContext, MainActivity.class);
      mContext.startActivity(intent);
   }

   public void closeMainActivity() {
      // how can I close the started main activity from the other function here?
   }

}

Как видите, я начал MainActivity из одной функции, а в другой функции, я хотел бы закрыть MainActivity началось. Но как я могу иметь ссылку на начатый MainActivity?

(Моя главная цель - позволить верхнему абоненту использовать это MyActivityManager начать и закрыть MainActivity)

Если нынешний путь невозможен, как добиться того, чего я хочу?

1 ответ

    //Try the below code and let me know if any issues.


    package com.example.raghavendrapai.myapplication;

    import android.app.Activity;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;


    public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            registerReceiver(mCloseReceiver, new IntentFilter("close_main_activity"));
        }

        @Override
        protected void onDestroy() {
            super.onDestroy();
            unregisterReceiver(mCloseReceiver);
        }

        private BroadcastReceiver mCloseReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equals("close_main_activity")) {
                    finish();
                }
            }
        };

    }


// And in your class
package com.example.raghavendrapai.myapplication;

import android.content.Context;
import android.content.Intent;

/**
 * Created by raghavendra.pai on 08/03/18.
 */

public class MyActivityManager {
    private Context mContext;

    public MyActivityManager(Context context) {
        mContext = context;
    }

    public void startMainActivity() {
        Intent intent = new Intent(mContext, MainActivity.class);
        mContext.startActivity(intent);
    }

    public void closeMainActivity() {
        Intent intent = new Intent("close_main_activity");
        mContext.sendBroadcast(intent);

    }

}
Другие вопросы по тегам