android广播里怎么实现Intent页面跳转 广播接收到信息就跳转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android广播里怎么实现Intent页面跳转 广播接收到信息就跳转相关的知识,希望对你有一定的参考价值。
参考技术A 上面的采纳回答是不对的,两位都没弄明白问题出在哪里,不用那么麻烦直接将跳转的intent添加一个方法:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
然后使用广播的context调用startactivity(intent);就可以了;
记住一点
,
凡是广播去调用一个新的Activity加这句。
Android使用Intent实现页面跳转
Intent 信使、意图
由Intent来协助Android各个组件之间跳转
1、
startActivity(intent)
包下新建一个类,FActivity.class
public class FActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
新建一个XML文件factivity.xml
<Button android:id="@+id/bt1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="First"/> <Button android:id="@+id/bt2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Second"/> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:layout_gravity="center" />
同样在创建第二对class和xml。
在AndroidManiFest中注册两个新类,并将默认启动类放在最前:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bcp.layouttest"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".FActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
添加按钮事件:
public class FActivity extends AppCompatActivity
private Button bt_first;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
/***
* 点击第一个按钮实现跳转页面
*/
bt_first= (Button) findViewById(R.id.bt1);
bt_first.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Intent intent=new Intent();
//第一个:上下文对象
//第二个:目标文件
intent.setClass (FActivity.this,SActivity.class);
startActivity(intent);
);
2、
startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
查看代码:
FActivity.java
public class FActivity extends AppCompatActivity
private Button bt_first;
private Button bt_second;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
/***
* 点击第一个按钮实现跳转页面
*/
bt_first= (Button) findViewById(R.id.bt1);
bt_first.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Intent intent=new Intent();
intent.setClass (FActivity.this,SActivity.class);
startActivity(intent);
);
/***
* 通过startActivityForresult实现
*/
bt_second= (Button) findViewById(R.id.bt2);
bt_second.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Intent intent=new Intent().setClass(FActivity.this,SActivity.class);
/***
* 第二个参数是请求的标示
*/
startActivityForResult(intent,1);
);
tv= (TextView) findViewById(R.id.text1);
/***
* 通过startActivityForresult实现,接收返回数据的方法
* 一、请求的标示
* 二、第二个页面返回的标示
* 三、第二个页面传回的数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
//判断是否满足条件来进行回传数据
if(requestCode==1&&resultCode==2)
String content=data.getStringExtra("intent");
tv.setText(content);
SActivity.java
public class SActivity extends AppCompatActivity
private Button bt;
private String content="Hello~!";
@Override
protected void onCreate( Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.sactivity);
/***
* 第二个页面给第一个页面回传数据
* 回传给第一个页面的实际上是一个intent对象
*/
bt= (Button) findViewById(R.id.bt3);
bt.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
Intent intent=new Intent();
//创建回传对象
intent.putExtra("intent",content);
setResult(2,intent);
//结束当前页面
finish();
);
App的签名和打包:
1、为了保证每个应用开发者的合法。
2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改
3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)
以上是关于android广播里怎么实现Intent页面跳转 广播接收到信息就跳转的主要内容,如果未能解决你的问题,请参考以下文章