teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ソースを追記

2021/07/17 08:53

投稿

minamirishin
minamirishin

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,87 @@
1
1
  ### やりたいこと
2
2
  掲題の通りです。
3
3
  画面を立ち上げる機能はkotlinにありますか?
4
- javaでなければ実装できないでしょうか?
4
+ javaでなければ実装できないでしょうか?
5
+
6
+ ### ソース
7
+ ```MainActivty
8
+ package com.example.myapplication
9
+
10
+ import android.app.AlarmManager
11
+ import android.app.PendingIntent
12
+ import android.content.BroadcastReceiver
13
+ import android.content.Context
14
+ import android.content.Intent
15
+ import android.os.Bundle
16
+ import android.util.Log
17
+ import android.widget.Button
18
+ import androidx.appcompat.app.AppCompatActivity
19
+ import java.util.*
20
+
21
+
22
+ class MainActivity : AppCompatActivity() {
23
+ override fun onCreate(savedInstanceState: Bundle?) {
24
+ super.onCreate(savedInstanceState)
25
+ setContentView(R.layout.activity_main)
26
+
27
+ val btn: Button = findViewById(R.id.btn)
28
+ btn.text = "before"
29
+ btn.setOnClickListener {
30
+ // 時間をセットする
31
+
32
+ val calendar: Calendar = Calendar.getInstance()
33
+ // Calendarを使って現在の時間をミリ秒で取得
34
+ calendar.setTimeInMillis(System.currentTimeMillis())
35
+ // 5秒後に設定
36
+ calendar.add(Calendar.SECOND, 5)
37
+
38
+ val intent = Intent(
39
+ applicationContext,
40
+ AlarmBroadcastReceiver::class.java
41
+ )
42
+ val pending = PendingIntent.getBroadcast(
43
+ applicationContext, 0, intent, 0
44
+ )
45
+ // アラームをセットする
46
+ val am = getSystemService(ALARM_SERVICE) as AlarmManager
47
+
48
+ am.setExact(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pending)
49
+
50
+
51
+ }
52
+ }
53
+ }
54
+ class AlarmBroadcastReceiver : BroadcastReceiver() {
55
+ override fun onReceive(context: Context?, intent: Intent?) {
56
+ val intent = Intent(context, MainActivity::class.java)
57
+ intent.action = "received"
58
+ val pIntent = PendingIntent.getActivity(context, 0, intent, 0)
59
+ pIntent.send()
60
+ }
61
+ }
62
+
63
+ ```
64
+ ```AndroidManifest
65
+ <?xml version="1.0" encoding="utf-8"?>
66
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
67
+ package="com.example.myapplication">
68
+ <uses-permission android:name="android.permission.WAKE_LOCK"/>
69
+ <application
70
+ android:allowBackup="true"
71
+ android:icon="@mipmap/ic_launcher"
72
+ android:label="@string/app_name"
73
+ android:roundIcon="@mipmap/ic_launcher_round"
74
+ android:supportsRtl="true"
75
+ android:theme="@style/Theme.MyApplication">
76
+ <activity android:name=".MainActivity">
77
+ <intent-filter>
78
+ <action android:name="android.intent.action.MAIN" />
79
+
80
+ <category android:name="android.intent.category.LAUNCHER" />
81
+ </intent-filter>
82
+ </activity>
83
+ <receiver android:name=".AlarmBroadcastReceiver"/>
84
+ </application>
85
+
86
+ </manifest>
87
+ ```