2014-10-26 7 views
6

मेरी गतिविधि कक्षा मेंनिर्धारण अलार्म हर 2 मिनट एंड्रॉयड

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE); 
     Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0); 
     alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,System.currentTimeMillis(),2000, pendingIntent); 

    } 

और alarmreciever वर्ग

 @Override 
    public void onReceive(Context context, Intent intent) 
     { 
     //get and send location information 
     System.out.println("fired"); 
     } 

मैं गठजोड़ 4, किटकैट संस्करण का उपयोग कर रहा में मेरे onrecieve कार्य करते हैं। मुझे लगता है कि हर 2 मिनट में कोई भी अभिनव समारोह नहीं निकालता है। एनजीजी हो रहा है ... कोई मदद? आप

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.alarmexample" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="20" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver 
     android:name="com.example.AlarmExample" 
     android:exported="false" > 
    </receiver> 
</application> 
</manifest> 

मैं बस अपना प्रकट रूप में अच्छी तरह डाल धन्यवाद। ............................................

+0

क्या आपने अपने मैनिफेस्ट में अलार्म रिसीवर क्लास नाम रखा है? – hister

+0

हां। ........... – user3278732

उत्तर

8

अपने setRepeating समारोह में, आप ELAPSED_REALTIME_WAKEUP के लिए SystemClock.elapsedRealTime() का उपयोग करना चाहिए। इसके अलावा, आपको अपना अंतराल समय निर्दिष्ट करने के लिए 2000 से 2 * 60 * 1000 को बदलने की आवश्यकता है।

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
          SystemClock.elapsedRealtime(), 
          2*60*1000, 
          pendingIntent); 

उम्मीद है कि इससे मदद मिलती है।

संदर्भ: ELAPSED_REALTIME_WAKEUP

संपादित करें: अपने मैनिफ़ेस्ट फ़ाइल में, वहाँ अपने रिसीवर नाम में कोई गलती है। "अलार्म रिसीवर" को "एलार्म रिसीवर" में बदलें।

<receiver 
    android:name=".AlarmReceiver" 
    android:exported="true" > 
</receiver> 
+0

अपने काम नहीं कर रहा, अपने प्रोजेक्ट यहाँ https://www.wetransfer.com/downloads/8529755c58f64f5f9f5767be664893ce20141026134802/1395db476afa6c786d656162a5c140f420141026134802/5beafe है प्रिंट आउट करता है, तो यू यह जाँच – user3278732

+0

@ user3278732 मैं अपनी परियोजना की जाँच की और पता चला चाहता हूँ आपकी मेनिफेस्ट फ़ाइल में एक टाइपो। मैंने अभी अपना जवाब अपडेट किया है। – SLee

+0

आपको बहुत धन्यवाद, जिसने स्थिति को हल किया। अब एक और मुद्दे पर काम कर रहा हूँ। जिंजरब्रेड में अलार्म मैनेजर जल्दी से गोलीबारी कर रहा है, किटकैट में 32 सेकंड के बाद फायरिंग .. जब मैं यह 10 * 60 * 1000 – user3278732

3

अपने कोड में आप अलार्म इस तरह

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      System.currentTimeMillis(), 
      2000, 
      pendingIntent); 

अंतराल समय हर दो मिनट चलाने के लिए गलत है सेट आप लिखना चाहिए:

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      0, 
      1000 * 60 * 2, 
      pendingIntent); 

संपादित

अपने लंबित इरादे सेट ध्वज के लिए PendingIntent.FLAG_UPDATE_CURRENT और देखें कि यह कुछ भी बदलता है या नहीं।

PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 
      0, 
      intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 
+0

सेट दोहरा 4 पैरामीटर लेता है, नहीं 3. – user3278732

+0

मैं जवाब – hister

+0

संपादित मैं कोड यहाँ रखा https://www.wetransfer.com/downloads/8529755c58f64f5f9f5767be664893ce20141026134802/1395db476afa6c786d656162a5c140f420141026134802/5beafe अपने काम नहीं कर रहा। सरल अनुप्रयोग, बस अलार्म – user3278732

संबंधित मुद्दे