그렇게 어렵진 않았다.
전에 했던 거 그대로 따라함.
1. activity_main.xml
2. MainActivity.java
package com.example.doitmission_11;
public class MainActivity extends AppCompatActivity {
EditText inputText;
TextView outputText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputText = findViewById(R.id.editTextText);
outputText = findViewById(R.id.textView2);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), MyService.class);
intent.putExtra("key",inputText.getText().toString());
startService(intent);
}
});
Intent passedIntent = getIntent();
processIntent(passedIntent);
}
@Override
protected void onNewIntent(@NonNull Intent intent) {
processIntent(intent);
super.onNewIntent(intent);
}
private void processIntent(Intent intent){
if(intent!=null){
String text = intent.getStringExtra("key");
outputText.setText(text);
}
}
}
3. MyService.java
package com.example.doitmission_11;
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(intent==null)
return Service.START_STICKY;
else
processCommand(intent);
return super.onStartCommand(intent, flags, startId);
}
private void processCommand(Intent intent){
String text = intent.getStringExtra("key");
Intent showIntent = new Intent(getApplicationContext(), MainActivity.class);
showIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
Intent.FLAG_ACTIVITY_SINGLE_TOP|
Intent.FLAG_ACTIVITY_CLEAR_TOP);
showIntent.putExtra("key",text);
startActivity(showIntent);
}
}
Service.START_STICKY
더보기
참고 블로그
FLAG
더보기
참고 블로그
4. 실행 결과
'TIL > 안드로이드 스튜디오' 카테고리의 다른 글
7장 - 나인패치, 카드뷰, 새로운 뷰 만들기 (0) | 2025.01.11 |
---|---|
도전!12 - 서비스에서 수신자로 메시지 보내기 (0) | 2025.01.10 |
리소스&매니패스트&그래들 이해하기 (0) | 2025.01.09 |
6장 - 위험 권한 부여하기 (0) | 2025.01.08 |
6장 - 브로드캐스트 수신자 (SMS 문자 정보 액티비티에 띄우기) (0) | 2025.01.07 |