Важно
Хорошо, обо всем по порядку:
Activity
является одним из различных типов Context
.
А ТАКЖЕ:
startActivity
- это метод, который есть у Context
объектов.
Объяснение
Если вы хотите запустить Activity, вы должны использовать объект Context
. Вот почему он работал в первую очередь, в вашем MainActivity
.
Теперь, когда вы переместили код в другой класс, если вы хотите использовать метод startActivity
, у вас должна быть ссылка на объект Context
.
Но ... Как?
public class startBT {
public static void switch_BT_ON(Context context){
//... Your logic
context.startActivity(intent);
}
}
В вашей деятельности:
startBT.switch_BT_ON(this);
Параметр this
- это сам MainActivity
, который по определению является Context
.
Это означает, что:
switch_BT_ON
требуется Context
.
MainActivity
говорит: «Вот, используй меня».
Рекомендации
Это классическое, основное ООП мышление. Изучите объектно-ориентированное программирование, классы и наследование, чтобы узнать, почему метод startActivity
работал на Acivity
, а не вне его, передавая объекты вокруг и обрабатывая различные области.
Прочитайте быстрый ответ о , что такое Android Context
. Или отправьтесь в путешествие по документации .