반응형
◎4대 주요 구성요소
1) Activity - 화면 담당
2) Service - 백그라운드 동작
3) Broadcast Receiver - 휴대폰 정보
4) Content Provider
예제) 앱을 하나 만들고, 그 앱을 1번 실행 시켰을때, 재부팅 마다 앱의 화면이 자동으로 나오도록 할 수 있다.
메인 액티비티를 만들고, 바로 BroadcastReceiver를 만들자.
이렇게만 해주면 앱을 실행하고, 휴대폰을 재부팅하면 토스트가 자동으로 뜰 것이다.
(MainActivity.java, activity_main.xml은 아무것도 추가 하지 않았다.)
이제 아래 코드를 추가하면, 재부팅시 액티비티가 뜬다.
BootingReceiver.java 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class BootingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// N(누가)버전 부터는 앱을 설치한 후 적어도 1회 직접 사용자가 런처화면에서 앱 아이콘을 클릭하여 실행한 앱만 BOOT_COMPLETE를 받을 수 있음.
Toast.makeText(context, "BootingReceiver received!!", Toast.LENGTH_SHORT).show();
String action =intent.getAction();
if(action.equals(Intent.ACTION_BOOT_COMPLETED)){
//이 앱에 있는 MainActivity를 실행
Intent i=new Intent(context,MainActivity.class);
//새로운 Activity를 기존 Activity가 아닌 곳에서
//실행하려면.. 새로운 Task에서 실행되도록..
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
|
AndroidManifest.xml 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
</intent-filter>
</activity>
<!--oreo 버전 부터 반드시 receiver태그문에 속성으로 퍼미션 속성을 써야함-->
<receiver android:name=".BootingReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<!-- 문자메세지 방송 인텐트 액션 -->
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<!-- 화면이 꺼졌다가 켜졌을 때-->
<action android:name="aaa"/>
</intent-filter>
</receiver>
</application>
</manifest>
|
이런 기능적 부분은 항상 달라지기 때문에 검색해서, 변경된 코드들을 찾아보자.
반응형
'안드로이드 웹앱 콘테츠 개발자 양성(국비지원) > Activity' 카테고리의 다른 글
Android Studio(기능) Broadcast Receiver (0) | 2019.10.07 |
---|---|
Android Studio Activity 전환 (화면 전환), Intent 4 (0) | 2019.09.18 |
Android Studio Activity 전환 (화면 전환), Intent 3 (0) | 2019.09.18 |
Android Studio Activity 전환 (화면 전환), Intent 2 (0) | 2019.09.18 |
Android Studio Activity 전환 (화면 전환), Intent (0) | 2019.09.18 |
댓글