あるActivityで別のActivityを呼び出す変数またはメソッド

4877 ワード

1つのActivityで別のActivityを呼び出すには、主にインタフェースコールバックと静的メソッドがあります.しかし,静的手法に加えて,インタフェースコールバック手法は推奨されない.
私は内部クラス+staticを採用しています.くだらないことは言わないで、直接コードをつけます.
/**
 * @author  
 * @description:
 * @date :7/28 15:53
 */
public class A extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AFactory.setA(this);
    }
	
    @Override
    protected void onDestroy() {
        AFactory.setA(null);
        super.onDestroy();
    }
    
	public void Fun(){
		//todo........
	}
	
    public static class AFactory{
        public static A getA() {
            return sA;
        }

        public static void setA(A  a) {
            sA = a;
        }

        public static A sA;
    }
}

次にActivity Bで呼び出します.
if(A.AFactory.getA()!=null){
	A.AFactory.getA().Fun();
}