0

クラス StartActivity で開始される繰り返しアラームがあります。パッケージは psychsoft.gps.v1 です。コードは、アラームが開始されたかどうかをキャッチしていないようです。

        if ((PendingIntent.getBroadcast(con, 13336,
            new Intent("psychsoft.gps.v1"), 
            PendingIntent.FLAG_NO_CREATE) != null))
    {
        Log.i("aaa", "Alarm is already active");
        Toast.makeText(con, "alarm already active", Toast.LENGTH_SHORT).show();
    }



    Calendar calGPS = Calendar.getInstance();
    Intent intentGPS = new Intent(con, AlarmReceiver.class);
    intentGPS.putExtra("alarm_message", "gps");
    PendingIntent senderGPS = PendingIntent.getBroadcast(this, 13336, intentGPS, PendingIntent.FLAG_UPDATE_CURRENT);        
    // Get the AlarmManager service
    AlarmManager amGPS = (AlarmManager) getSystemService(ALARM_SERVICE);
    amGPS.setRepeating(AlarmManager.RTC_WAKEUP, calGPS.getTimeInMillis(),1000*60*5, senderGPS);

このコードをテストするために、一度実行してアラームをスケジュールします (アプリをインストールします)。次に、(アイコンをクリックして) 再度実行し、トーストまたはログ出力を取得しようとします。私はどちらも得ていません。なんで?PendingIntent のリクエストコードと if 文のリクエストコードを一致させれば解決するかもしれないと思っていたのですが、解決しませんでした。

4

1 に答える 1

0

代わりに、次のようにインテントを作成して確認してみてください。

Intent intentGPS = new Intent("psychsoft.gps.v1.MY_UNIQUE_ACTION");

if ((PendingIntent.getBroadcast(con, 13336,
            new Intent("psychsoft.gps.v1.MY_UNIQUE_ACTION"), 
            PendingIntent.FLAG_NO_CREATE) != null))
    {
        Log.i("aaa", "Alarm is already active");
        Toast.makeText(con, "alarm already active", Toast.LENGTH_SHORT).show();
    }
于 2012-12-28T17:51:01.223 に答える