How to set an alarm in android java

南笙酒味 提交于 2020-01-14 05:25:36

问题


I know this question has asked before, but I am really surprised, after trying so hard. I have not enabled to work alarm on android emulator. I have tried all codes of this forum but in vain. Even I download a sample code still it did not work. please help me guys I am sending you my all code. Can anyone tell me "do alarm bell rings on android emulator"? If yes then what is problem in my code? I tested same code for API level 4 and 10. Both did not work. Even I create 2 different projects but in vain.

AndroidAlarmService:

package com.exercise.AndroidAlarmService;

import java.util.Calendar;

import android.app.Activity;     
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class AndroidAlarmService extends Activity {

private PendingIntent pendingIntent;


/** Called when the activity is first created. */
@Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 Button buttonStart = (Button)findViewById(R.id.startalarm);
 Button buttonCancel = (Button)findViewById(R.id.cancelalarm);

 buttonStart.setOnClickListener(new Button.OnClickListener(){


 public void onClick(View arg0) {
   // TODO Auto-generated method stub

  Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
   pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.SECOND, 10);
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),      pendingIntent);

  Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show();
  }});

 buttonCancel.setOnClickListener(new Button.OnClickListener(){


   public void onClick(View arg0) {
   // TODO Auto-generated method stub
   AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
   alarmManager.cancel(pendingIntent);

        // Tell the user about what we did.
        Toast.makeText(AndroidAlarmService.this, "Cancel!", Toast.LENGTH_LONG).show();


    }});

    }
    }

MyAlarmService:

 package com.exercise.AndroidAlarmService;

 import android.app.Service;
 import android.content.Intent;
 import android.os.IBinder;
 import android.widget.Toast;

 public class MyAlarmService extends Service {

 @Override
 public void onCreate() {
  // TODO Auto-generated method stub
 Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show();
 }

 @Override
 public IBinder onBind(Intent intent) {
  // TODO Auto-generated method stub
  Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show();
  return null;
 }

 @Override
 public void onDestroy() {
 // TODO Auto-generated method stub
 super.onDestroy();
 Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show();
 }

 @Override
 public void onStart(Intent intent, int startId) {
 // TODO Auto-generated method stub
 super.onStart(intent, startId);
 Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
 }

 @Override
 public boolean onUnbind(Intent intent) {
  // TODO Auto-generated method stub
   Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG).show();
   return super.onUnbind(intent);
 }

 }

Layout:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
   <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
 />
 <Button
    android:id="@+id/startalarm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Start"
 />
 <Button
    android:id="@+id/cancelalarm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Cancel"
  />
  </LinearLayout>

Android manifest:

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

   <application android:icon="@drawable/icon" android:label="@string/app_name">
       <activity android:name=".AndroidAlarmService"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
       </activity>
    <service android:name=".MyAlarmService" />
    </application>
 </manifest>

回答1:


I was also getting same problem. But I installed my application on mobile then the alarm bell was working.

Then I came to know alarm bell is not working on emulator. So no need to worry about this. You have to try on your mobile. Its working fine.



来源:https://stackoverflow.com/questions/7295604/how-to-set-an-alarm-in-android-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!