Android: запуск новой активности из класса приложения

У меня есть приложение для Android, которое воспроизводит аудио из класса приложения. У меня есть PhoneStateListener в моем классе приложения, который приостанавливает звук при звонке.

Я хочу начать конкретное действие, когда вызов заканчивается, но я не могу. Вот мой код:

public void getPhoneState(){ TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (state == TelephonyManager.CALL_STATE_RINGING) { if(audio.isPlaying()) audioPlayer.pause(); } else if(state == TelephonyManager.CALL_STATE_IDLE) { audio.start(); Intent missintent= new Intent(context,AudioActivity.class); missintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(missintent); } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) { if(audio.isPlaying()) audioPlayer.pause(); } super.onCallStateChanged(state, incomingNumber); } }; if(mgr != null) { mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); } } public boolean handleAudio(String source, int id) { phoneState(); //Code for Playing Audio ..... ..... } 

Я был бы признателен, если бы кто-нибудь мог показать мне, как правильно начать свою деятельность.

Благодаря!

Solutions Collecting From Web of "Android: запуск новой активности из класса приложения"

Хорошо, поэтому я знаю, что вы нашли другое решение уже, но я искал его и нашел что-то, что сработало для меня. Вместо вызова намерения я использовал pendingIntent, фильтр намерений и ожидающий пост. Ниже приведен фрагмент кода для всех, кто имеет эту проблему.

 Context context = MyApplication.this.getApplicationContext(); Intent errorActivity = new Intent("com.error.activity");//this has to match your intent filter errorActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pendingIntent = PendingIntent.getActivity(context, 22, errorActivity, 0); try { pendingIntent.send(); } catch (CanceledException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Затем в вашем манифесте просто убедитесь, что вы установили фильтр намерений для активности ловли

 <activity android:name="UncaughtErrorDialogActivity" android:theme="@android:style/Theme.Dialog" > <intent-filter> <action android:name="com.error.activity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>