2014-10-19 39 views
0

我在整天搜索如何在我看来这么做简单的任务...我的应用程序中有一个闹钟,当它关闭时我想将我的应用程序在用户屏幕前,因此他可以关闭报警... 在我的活动我已成立的意图,致电reciever ...即使当用户点击主页按钮时,从报警广播接收器开始活动

registerReceiver(mReceiver, new IntentFilter("sample")); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(MapActivity.this, 0, new Intent("sample"),0); 
AlarmManager alarmManager = (AlarmManager)(MapActivity.this.getSystemService(Context.ALARM_SERVICE)); 

,这是我onRecieve方法

@Override 
    public void onReceive(Context context, Intent intent) { 

    Toast.makeText(context, "Alarm time has been reached", Toast.LENGTH_LONG).show(); 
    Uri notifikacijaAlarma = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); 
    final Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notifikacijaAlarma); 
    r.play(); 

    PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); 
    WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.FULL_WAKE_LOCK, "TRAININGCOUNDOWN"); 
    wl.acquire(); 

    Intent i = new Intent(getBaseContext(), GlavniIzbornik.class); 
    i.setAction(Intent.ACTION_MAIN); 
    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    i.setFlags(Intent.FLAG_FROM_BACKGROUND | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK| Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY); 

    startActivity(i); 
    wl.release(); 

}    

所以即使当我去另一个应用程序或做其他事情时,我的闹钟也会熄灭在手机上...它显示吐司和播放铃声,但它不会把我的应用程序前面,当我手动去我的应用程序开始活动,但我不能得到它,所以它会把我的应用程序前面。

有没有人对此有一些建议?

PS我知道我应该从我的报警活动播放铃声......我只是想看看,如果整个代码被执行...

+1

哇,感谢的人......它终于起作用了......我不能告诉你我在这个问题上花了多少钱...... – user3632055 2014-10-19 21:31:59

+1

感谢的人......我没有看到地方打勾回答,但现在我做到了...... :) – user3632055 2014-10-20 14:05:26

+0

欢迎来到Stackoverflow。享受你的逗留,我希望你学到很多东西。 – 2014-10-20 14:33:14

回答

0

你被明确Intent开始Activity。删除行i.setAction(...)i.setCategory(...)。这些在清单中用于在启动器中显示此Activity

下一个根据documentation您自己并没有设置Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY

不要EVER使用getBaseContext(),在BroadcastReceiver.onReceive(...)使用contextnew Intent(context, GlavniIzbornik.class);context.startActivity(i)。在ActivityService使用this

相关问题