我已經看了一些指南,我已經基本上做到了這一點:設置AlarmManager在Android應用未運行時運行?
Main.java
public class Main extends Activity
{
PendingIntent pendingIntent;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/New_York"));
cal.set(Calendar.HOUR_OF_DAY, 22);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Intent myIntent = new Intent(Main.this, Receiver.class);
pendingIntent = PendingIntent.getBroadcast(Main.this, 0, myIntent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, cal.getTimeInMillis(), pendingIntent);
}
}
Receiver.java
public class Receiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "I'm running", Toast.LENGTH_SHORT).show();
}
}
AndroidManifest.xml
還含有<receiver android:name=".Receiver"/>
。
因此,從我讀過的內容來看,無論該應用程序是否實際運行,上述代碼在紐約下午10點都應該顯示toast
。目前,即使應用程序正在運行,它也不會執行任何操作。它看起來像Receiver
類甚至沒有被稱爲。我錯過了什麼?
你的答案是正確的答案,現在你問另一個。恕我直言,你應該發佈另一個問題,但不是在這裏。 1Q = 1A – deadfish 2015-02-02 13:19:21