Edit 1NullPointerException при вызове метода от BroadcastReceiver к активности?
Мне нужно вызвать метод из BroadcastReceiver и методы существует в деятельности класса упоминании ниже.
Я пробовал этот код и получил NULL_POINTER_EXCEPTION
, где создаю ссылку на класс MainActivity.
Исправить меня, что я делаю неправильно?
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void myTesting(){
Toast.makeText(MainActivity.this, "Welcome to Activity", Toast.LENGTH_SHORT).show();
}
}
BroadcastReceiver.java
public class BootCompeteReceiver extends BroadcastReceiver {
public Context mContext;
private MainActivity mainActivity;
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
try {
mainActivity = new MainActivity();
mainActivity.myTesting();
} catch (Exception e) {
Toast.makeText(context, ""+e, Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
активность не является хорошим местом, чтобы написать метод, который вы собираетесь звонить из других ресурсов. Поэтому переместите метод 'myTesting' в некоторые классы uitility. –
и создание экземпляра класса активности не является хорошим, поскольку активность имеет свой lifycycle и запускается startActivity (намерением) – Raghunandan
**" mainActivity = new MainActivity(); "* * Вы не можете создать экземпляр класса 'Activity', используя' new'. Это просто не сработает. – Squonk