显示闹钟应用程序的另一个全屏活动的困难

时间:2017-03-19 10:25:42

标签: java android

我是学生在Android Studio中学习编程,在开发闹钟项目时遇到了一些困难。我在我的代码中做了很多实验和研究,但我仍然找不到解决方案。我想尝试发出正常警报,即警报激活时,显示另一个全屏活动以提醒用户。我不希望我的闹钟应用只能响铃和祝酒通知。我希望它也能显示一个屏幕。

这是我的代码:

package com.example.android.exno11;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
import android.widget.ToggleButton;

import com.example.android.exno11.AlarmReceiver;
import com.example.android.exno11.R;

import java.util.Calendar;

import static android.R.id.message;
import static android.provider.AlarmClock.EXTRA_MESSAGE;

public class MainActivity extends AppCompatActivity {

    TimePicker alarmTimePicker;
    PendingIntent pendingIntent;
    AlarmManager alarmManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        alarmTimePicker = (TimePicker) findViewById(R.id.timePicker);
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    }    

    // Toggle button
    public void OnToggleClicked(View view) {
        long time;
        if (((ToggleButton) view).isChecked()) {
            Toast.makeText(MainActivity.this, "Activated", Toast.LENGTH_SHORT).show();
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
            calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute() + 1);
            Intent intent = new Intent(this, AlarmReceiver.class);
            pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

            time=(calendar.getTimeInMillis()-(calendar.getTimeInMillis()%60000));
            if(System.currentTimeMillis()>time) {    
                if (calendar.AM_PM == 0)
                    time = time + (1000*60*60*12);
                else
                    time = time + (1000*60*60*24);    
                }    
                alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 120000, pendingIntent);
            }
            else {    
               Toast.makeText(MainActivity.this, "OFF", Toast.LENGTH_SHORT).show();
               alarmManager.cancel(pendingIntent);    
             }
        }
  }

这就是明显,不确定我所做的是对的。谢谢你的帮助。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.exno11">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".AlarmReceiver"></receiver>
    </application>

</manifest>

0 个答案:

没有答案