Tôi có MainActivity là một Activity và lớp khác (là một lớp java đơn giản), chúng tôi sẽ gọi nó là "SimpleClass". bây giờ tôi muốn chạy từ lớp đó lệnh startActivityForResult.
bây giờ tôi mặc dù tôi có thể truyền lớp đó (SimpleClass), chỉ có ngữ cảnh của MainActivity, vấn đề là, bạn không thể chạy context.startActivityForResult (...);
vì vậy cách duy nhất tạo SimpleClass để sử dụng 'startActivityForResult; là chuyển tham chiếu của MainActivity dưới dạng một biến Activity cho SimpleClass một cái gì đó tương tự như vậy:
bên trong lớp MainActivity, tôi tạo phiên bản của SimpleClass theo cách này:
SimpleClass simpleClass=new SimpleClass(MainActivity.this);
bây giờ đây là cách SimpleClass trông như thế này:
public Class SimpleClass {
Activity myMainActivity;
public SimpleClass(Activity mainActivity) {
super();
this.myMainActivity=mainActivity;
}
....
public void someMethod(...) {
myMainActivity.startActivityForResult(...);
}
}
bây giờ nó đang hoạt động, nhưng không phải là một cách thích hợp để làm điều này? Tôi sợ rằng mình có thể bị rò rỉ bộ nhớ trong tương lai.
cảm ơn. cá đuối.