安装Android应用程序后,当您按下应用程序中的按钮时,是否可以动态更改应用程序图标和名称(在运行时)?
这是到目前为止的代码..,
getPackageManager().setComponentEnabledSetting(
new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
try {
getPackageManager().setComponentEnabledSetting(
new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity-One"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
} catch (Exception e) {
//handle
}
Run Code Online (Sandbox Code Playgroud)
并在清单文件中......
<application
android:allowBackup="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name2"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.badgemaste.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:icon="@drawable/ic_laun"
android:label="@string/app_name"
android:name="com.example.badgemaste.MainActivity-One"
android:enabled="true"
android:targetActivity="com.example.badgemaste.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
</application>
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,最初会出现第一个图标(在抽屉中,也在操作栏中),然后在我关闭应用程序并重新运行它之后,它将切换到另一个图标.
我想要做的是,将此程序分配给一个按钮,即如果我只按下该按钮,图标将会改变,否则不会.我怎么能实现这个?
在我的Angular 2应用程序中,我订阅了一个简单的服务来从远程数据库获取数据并在表视图中显示它们.一切正常,现在我想添加一个进度条来显示从服务器获取数据的实时进度.我目前正在使用primeng progressbar 组件来显示进度.但它只能提供一个固定的时间来显示进度,如下面的代码所示,
ngOnInit() {
let interval = setInterval(() => {
this.value = this.value + Math.floor(Math.random() * 10) + 1;
if(this.value >= 100) {
this.value = 100;
this.msgs = [{severity: 'info', summary: 'Success', detail: 'Process Completed'}];
clearInterval(interval);
}
}, 2000);
}
Run Code Online (Sandbox Code Playgroud)
2000表示进度条显示的时间(以毫秒为单位).但我需要的不是这个,我需要最初显示进度条并动态和实时填充进度条,直到实际数据提取完成.只有在数据提取完成之后且数据呈现到表视图之前,才应完成进度条并且不可见.
除了为进度条提供静态时间之外,还有其他逻辑吗?欢迎除primeng之外的任何其他解决方案.
提前致谢.
更新:
我的服务类,
@Injectable()
export class MyService {
constructor(public http:Http) {
}
search(criteria:SearchObject):Observable<ResponseObject>{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(URL,JSON.stringify(criteria),options)
.map(res …Run Code Online (Sandbox Code Playgroud)