国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android receiver 多次啟動相同Activity

2019-11-09 17:34:41
字體:
來源:轉載
供稿:網友

在Receiver中多次啟動相同的Activity,如果Intent是相同的是不會重新創建Activity的,只有Intent內容不同時才會啟動多個Activity。

TestActivity.java 代碼段:

package com.example.gonglt1.ltestapp;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;/** * Created by gonglt1 on 2017/2/6. */public class TestActivity extends Activity { PRivate static final String TAG = "glttest"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG,"TestActivity :: onCreate"); } @Override protected void onResume() { super.onResume(); Log.e(TAG,"TestActivity :: onResume"); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Log.e(TAG,"TestActivity :: onNewIntent"); } @Override protected void onPause() { super.onPause(); Log.e(TAG,"TestActivity :: onPause"); } @Override protected void onStop() { super.onStop(); Log.e(TAG,"TestActivity :: onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG,"TestActivity :: onDestroy"); }}

TestReceiver.java 代碼段:

package com.example.gonglt1.ltestapp;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.media.AudioManager;import android.os.Handler;import android.util.Log;/** * Created by gonglt1 on 2017/1/22. */public class TestReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.e("glttest","TestReceiver :: onReceive"); Intent intent1 = new Intent(context, TestService.class); context.startService(intent1); } }

TestService.java 代碼:

package com.example.gonglt1.ltestapp;import android.app.Service;import android.content.ContentUris;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.IBinder;import android.support.annotation.Nullable;import android.util.Log;/** * Created by gonglt1 on 2017/2/6. */public class TestService extends Service{ @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } private static int i = 0; @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.e("glttest","TestService :: onStartCommmand"); Intent intent1 = new Intent(this, TestActivity.class); intent1.setData(ContentUris.withAppendedId( Uri.parse("content://" + "com" + "/instances"), i++)); intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); getapplicationContext().startActivity(intent1); return super.onStartCommand(intent, flags, startId); }}

通過cmd命令行發送廣播:

adb shell am broadcast -a com.example.gonlt1.ltestapp.CMD_SEND_BROADCAST

查看log日志輸出如下:

02-06 16:41:05.681 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestReceiver :: onReceive02-06 16:41:05.687 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestService :: onStartCommmand02-06 16:41:05.727 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onCreate02-06 16:41:05.732 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onResume02-06 16:41:11.148 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestReceiver :: onReceive02-06 16:41:11.149 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestService :: onStartCommmand02-06 16:41:11.158 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onPause02-06 16:41:11.169 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onCreate02-06 16:41:11.175 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onResume02-06 16:41:11.240 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onStop

如果注釋掉TestService.java onStartCommand()方法中的這句代碼:

Log.e("glttest","TestService :: onStartCommmand"); Intent intent1 = new Intent(this, TestActivity.class);// intent1.setData(ContentUris.withAppendedId( Uri.parse("content://" + "com" + "/instances"), i++)); intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION); getApplicationContext().startActivity(intent1);

再次在cmd命令行中多次發送廣播,log輸出如下:

02-06 16:58:45.849 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestReceiver :: onReceive02-06 16:58:45.851 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestService :: onStartCommmand02-06 16:58:45.894 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onCreate02-06 16:58:45.903 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestActivity :: onResume02-06 16:58:48.840 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestReceiver :: onReceive02-06 16:58:48.840 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestService :: onStartCommmand02-06 16:58:54.755 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestReceiver :: onReceive02-06 16:58:54.756 31041-31041/com.example.gonglt1.ltestapp E/glttest: TestService :: onStartCommmand

從log中看到,只會啟動一次TestActivity。

demo點擊此處下載


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤冈县| 营口市| 灵宝市| 汨罗市| 融水| 南和县| 宝鸡市| 万全县| 永定县| 莱阳市| 蕉岭县| 柳州市| 陇川县| 乡城县| 巴青县| 洪湖市| 铁岭县| 长岭县| 兰溪市| 政和县| 新沂市| 巴里| 米脂县| 兰考县| 大港区| 集安市| 临沂市| 海伦市| 九龙县| 佛坪县| 平度市| 靖宇县| 克东县| 万州区| 屯门区| 睢宁县| 岑溪市| 花垣县| 青神县| 惠东县| 石台县|