博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 发送多个不同的快捷方式(shortcut)到桌面并向其启动的Activity传参
阅读量:4966 次
发布时间:2019-06-12

本文共 4353 字,大约阅读时间需要 14 分钟。

需求:

对于创建快捷方式到桌面,网上能查到不少资料,但一般都是针对应用程序本身的。

前阵子在做项目时,遇到了一个类似于百度贴吧里面的一个需求:对于每个具体的贴吧,都可以将其发送到桌面(HomeScreen)建立快捷方式shortcut。

图标相同,只是图标下面显示的名称为具体贴吧的名称,然后点击此快捷图标则能直接进入到本贴吧中。

实现:

1.AndroidManifest中声明权限:

1 
2

2.app_start.xml布局文件:

1 
9 10
14 15
21 22 23
29 30 31

相应的逻辑代码为:

1 package com.qqyumidi.shortcutdemo; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 10 public class AppStart extends Activity implements OnClickListener {11 12     private Button button1;13     private Button button2;14 15     @Override16     protected void onCreate(Bundle savedInstanceState) {17         super.onCreate(savedInstanceState);18         setContentView(R.layout.app_start);19 20         button1 = (Button) findViewById(R.id.button1);21         button2 = (Button) findViewById(R.id.button2);22 23         button1.setOnClickListener(this);24         button2.setOnClickListener(this);25 26         Intent intent = getIntent();27         if (intent != null) {28             String tName = intent.getStringExtra("tName");29             if (tName != null) {30                 Intent redirectIntent = new Intent();31                 redirectIntent.setClass(AppStart.this, TiebaActivity.class);32                 redirectIntent.putExtra("tName", tName);33                 startActivity(redirectIntent);34             }35         }36     }37 38     @Override39     public void onClick(View v) {40         // TODO Auto-generated method stub41         Intent intent = new Intent();42         intent.setClass(AppStart.this, TiebaActivity.class);43         //传参44         switch (v.getId()) {45         case R.id.button1:46             intent.putExtra("tName", "玉米吧");47             break;48         case R.id.button2:49             intent.putExtra("tName", "土豆吧");50             break;51         }52         startActivity(intent);53     }54 }

贴吧页tieba_activity.xml布局文件为:

1 
9 10
14 15
21 22 23

相应的逻辑代码为:

package com.qqyumidi.shortcutdemo;import android.app.Activity;import android.content.Intent;import android.content.Intent.ShortcutIconResource;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class TiebaActivity extends Activity {    private TextView textView;    private Button button;    private String tName;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.tieba_activity);        Intent intent = getIntent();        tName = intent.getStringExtra("tName");        textView = (TextView) findViewById(R.id.textview1);        textView.setText("本贴吧名称: " + tName);        button = (Button) findViewById(R.id.button3);        button.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if (tName == null) {                    tName = getString(R.string.app_name);                }                addShortCut(tName);            }        });    }    private void addShortCut(String tName) {        // 安装的Intent          Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");        // 快捷名称          shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, tName);        // 快捷图标是允许重复        shortcut.putExtra("duplicate", false);        Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);        shortcutIntent.putExtra("tName", tName);        shortcutIntent.setClassName("com.qqyumidi.shortcutdemo", "com.qqyumidi.shortcutdemo.AppStart");        shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);        // 快捷图标          ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);        // 发送广播          sendBroadcast(shortcut);    }}

在如上代码中,最主要的部分为addShortCut()函数和AppStart对传入参数的相应处理过程。

ShortCut Demo下载地址:

 

转载于:https://www.cnblogs.com/lwbqqyumidi/p/3358310.html

你可能感兴趣的文章
html5模拟平抛运动
查看>>
java面向对象下:Java数据库编程
查看>>
RT3070 USB WIFI 在连接socket编程过程中问题总结
查看>>
Traffic Management Gym - 101875G
查看>>
java -version 问题 : C:\ProgramData\Oracle\Java\javapath;
查看>>
软件架构---SOA体系
查看>>
宿命的P.S.S
查看>>
hdu 2067 小兔的棋盘 卡特兰数+java
查看>>
MIS外汇平台荣获“2013年全球最佳STP外汇交易商”
查看>>
LeetCode 题解之Add Digits
查看>>
高性能分布式计算与存储系统设计概要(下篇)
查看>>
案例------冒泡排序
查看>>
Hexo中添加emoji表情
查看>>
setsocketopt() usage
查看>>
Xml处理工具类(Jdom)
查看>>
返回文件路径中的想要的值
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
maven常用配置信息和常量
查看>>
20120227_CET6
查看>>
Navicat Premium 连接Oracle 数据库(图文教程)
查看>>